我是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"]
答案 0 :(得分:0)
我收集你想要一组用户作为数据源, 我会像任何其他数组一样声明它:
var userDataSource = [User]()
或
var userDataSource = Array<User>()
要更新数据源,
extension AccountViewController: GetUserDelegate {
func getUserSuccess(user: User) {
self.userDataSource.append(user)
}
}