Swift 处理JSON分页,并将数据添加到表视图?
我得到的JSON响应格式如下:Swift 处理JSON分页,并将数据添加到表视图?,swift,realm,swift4,objectmapper,moya,Swift,Realm,Swift4,Objectmapper,Moya,我得到的JSON响应格式如下: { "current_page":1, "data":[ { "id":1, "title":"Title 1" }, { "id":2, "title":"Title 2" }, { "id":3, "title":"Titl
{
"current_page":1,
"data":[
{
"id":1,
"title":"Title 1"
},
{
"id":2,
"title":"Title 2"
},
{
"id":3,
"title":"Title 3"
}
]
}
如您所见,data
包含一个对象列表,在本例中是一个Post
s列表。这是我的领域/对象映射器Post
类:
import RealmSwift
import ObjectMapper
class Post: Object, Mappable {
let id = RealmOptional<Int>()
@objc dynamic var title: String? = nil
required convenience init?(map: Map) {
self.init()
}
func mapping(map: Map) {
}
}
import ObjectMapper
class Pagination<T: Mappable>: Mappable {
var data: [T]?
required convenience init?(map: Map) {
self.init()
}
func mapping(map: Map) {
data <- map["data"]
}
}
然而,我不确定我是否写对了这个类
下面是一个类,我在其中调用发送回分页数据的端点(我删除了不相关的代码):
如何正确处理JSON响应,以获取
Post
s列表,然后将它们附加到var posts=[Post]()
变量中?我是否需要对我的分页
类进行任何更改?一旦有了json,就可以使用对象映射器轻松解析它:
let pagination = Mapper<Pagination<Post>>().map(JSONObject: json)
我假设在不了解ObjectMapper(也许还有Realm)的情况下无法回答这个问题?我不确定,我认为在不了解Realm或ObjectMapper的情况下回答这个问题应该是可能的。我最近创建了一个应用程序,它使用了一个具有分页功能的API。如果您知道总页数,我建议您查看“UITableViewDataSourcePrefetching”。它是专门为使用分页的tableView/collectionView设计的。这样,您就不需要手动附加到数据数组中,也不需要跟踪您现在所在的页面,等等。Ray Wenderlich在这方面有一个很好的例子。
let pagination = Mapper<Pagination<Post>>().map(JSONObject: json)
func mapping(map: Map) {
title <- map["title"]
}