我是Swift的新手,问了几个问题,我对如何为对象获取正确的类型感到有些困惑,但我相信我已经弄清楚了。
我有一个用户对象,它是一个对象映射器模型。
我试图将此对象映射器模型转换为数组。
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"]
最佳答案
我搜集到您想要一个用户数组作为数据源,
我会像其他数组一样声明它:
var userDataSource = [User]()
要么
var userDataSource = Array<User>()
并更新数据源,
extension AccountViewController: GetUserDelegate {
func getUserSuccess(user: User) {
self.userDataSource.append(user)
}
}