尝试将对象映射器模型转换为数组

时间:2018-03-09 18:08:07

标签: arrays swift object objectmapper

我是Swift的新手,并且问了一些问题,我对如何为我的对象获取正确的类型感到有些困惑,但我相信我已经弄明白了。

我有一个User对象,它是一个Object Mapper模型。

我正在尝试将此Object Mapper模型转换为数组。

https://github.com/Hearst-DD/ObjectMapper

但是我收到错误Cannot specialize a non-generic definition

这是我试图投射的变量:

fileprivate var userDataSource = Mapper<User>().Array<Any>(User)

其定义的扩展名:

extension AccountViewController: GetUserDelegate {
    func getUserSuccess(user: User) {
        self.userDataSource = User
    }
}

原型到模型的映射在这里完成:

guard let user = Mapper<User>().map(JSONObject: value)

用户类如下所示:

class User: Mappable {
    required init?(map: Map) {

    }

    init() {}

    var id: Int?
    var firstName: String?
    var lastName: String?
    var displayName: String?
    var image: URL?
    var about: String?
    var email: String?
    var password: String?
    var authToken: String?

如果需要,我可以加入更多。

我在这里误解了什么?我没有看到这个错误的例子似乎都适用于我的情况。

期望的最终输出:

["Name", "Bob Jim"],
["MC #", "1234567"],
["Company Name", "Bob's Truckin"],
["Truck Type", "Flat Bed"],
["Cell", "(555) 555-5555"],
["Dispatch", "(999) 999-9999"],
["Favorite Destinations", "Los Angeles"]

1 个答案:

答案 0 :(得分:0)

我收集你想要一组用户作为数据源, 我会像任何其他数组一样声明它:

var userDataSource = [User]()

var userDataSource = Array<User>()

要更新数据源,

extension AccountViewController: GetUserDelegate {
    func getUserSuccess(user: User) {
        self.userDataSource.append(user)
    }
}