Swift 处理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

我得到的JSON响应格式如下:

{
    "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"]
}