如何处理来自 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
上获取特定对象(汽车),然后显示所有信息。
当我像这样使用 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
上获取特定对象(汽车),然后显示所有信息。