如何处理来自 API 调用的 ios 数据

How to handle ios data from API call

当我像这样使用 Alamofire 调用 api 时

Alamofire.request(.POST, "http://localhost:8080/xxx/xxx/xxx/xx").responseJSON() {
        (_, _, jsonData, error) in

        if error == nil{
            var newItem=JSON(jsonData!)
            println(newItem)
        }
        else{
            println("Nothing!")
        }
    }

我得到了很多 json 格式,其中包括 {"header","body"}。 Header是这样的

"header" : {
   "toPage" : "3948",
   "totalCount" : "59212",
   "lotId" : "50205",
   "vendorName" : "TOYOTA",
   "rowPerPage" : "15",
   "fromPage" : "1",
   "currentPage" : "1",
   "modelName" : "LEXUS LS"
}

body 字符串每页有 15 行,包括很多这样的数据,我只给你看一个。

"body" : [
{
  "id" : "5AxYKWbiqn451Y",
  "priv" : "",
  "average" : "395000",
  "equip" : "",
  "chassis" : "DA63T"
},

每次我请求时,它都会给我 15 results.All 我想要的是在 table 视图中使用 table 单元格、标签和图像视图 like this

所以,任何关于如何在代码中做到这一点以创造更好的建议 performance.i 意味着我需要先将数据存储在某个数组中并将它们显示在 table view.All 我需要来自 body "vendorName,image0,mileage,modelName" 的四个数据。所以在 table 视图中有一个图像视图,三个标签,正如我在上面显示的 figure.Any 代码帮助和建议表示赞赏.

既然你问了几个问题,我就一一解答。我假设您知道如何从 JSON 读取数据(您没有那个具体问题)。那么,让我粘贴您的一些文字

Everytime i request,it give me 15 results.All i want is to show this in table view using table cell,label and image view like this

So,any suggestion how to do that in code to create better performance.i mean do i need to store data first in some array and display them in the table view.All i need is four data from the body "vendorName,image0,mileage,modelName".So there are one image view,three labels in the table view as i show at above figure.Any Code Help and Suggestion is appreciated.

首先,如果您想获得更少的结果,决定权不在您的应用。那是服务器端。您必须实施方法(或更改现有方法)才能获得想要的结果。

其次,如果您想以某种方式操作数据,则必须将其存储在某个地方。如果您必须为每个单元格调用 API(或者,因为重复使用的单元格无论如何都会出列),这将非常昂贵。您可以将其存储在数组中,也可以实现下拉刷新以重新加载列表等。

第三,如果你只想要几个项目,同样,你将不得不更换服务器。也许为列表创建函数,也许编辑其中一个函数。无论哪种方式,您都必须处理服务器。

此外,您可以通过提取所需数据并创建视图用途模型来处理所有这些数据,前提是您无权访问服务器并且有变通办法。您也可以加载从服务器获得的所有数据,但这可能会很慢,内存方面的开销很大等。

我的建议是使用您提到的 4 个属性和 ID 创建模型,然后在 didSelectCellAtRow 上获取特定对象(汽车),然后显示所有信息。