ObjectMapper-初始化对象IOS
让我头疼的一件简单的事情——如何在没有任何JSON的情况下初始化符合可映射协议的对象 我想做的是,在如下代码中初始化空用户对象:ObjectMapper-初始化对象IOS,ios,swift,initialization,swift2,Ios,Swift,Initialization,Swift2,让我头疼的一件简单的事情——如何在没有任何JSON的情况下初始化符合可映射协议的对象 我想做的是,在如下代码中初始化空用户对象: let user = User() 然而,这给了我一个错误: “调用中缺少参数#1的参数” 我可以用swift 1.2在0.14版中实现它,但现在它不起作用了。你们知道现在在swift 2和新的对象映射器中怎么做吗?(我知道如何用json等初始化它,我只想为其他目的初始化该对象,我不知道如何初始化) 类用户:可映射{ var用户名:字符串? 变量年龄:Int? 重量
let user = User()
然而,这给了我一个错误:
“调用中缺少参数#1的参数”
我可以用swift 1.2在0.14版中实现它,但现在它不起作用了。你们知道现在在swift 2和新的对象映射器中怎么做吗?(我知道如何用json等初始化它,我只想为其他目的初始化该对象,我不知道如何初始化)
类用户:可映射{
var用户名:字符串?
变量年龄:Int?
重量:双倍!
变量数组:[AnyObject]?
变量字典:[字符串:AnyObject]=[:]
var bestFriend:User?//嵌套的用户对象
var friends:[用户]?//用户数组
生日:NSDate?
必需的初始化(umap:map){
}
//可映射
func映射(映射:映射){
username以下操作应该有效:
class User: NSObject, Mappable {
var username: String?
var age: Int?
var weight: Double!
var array: [AnyObject]?
var dictionary: [String : AnyObject] = [:]
var bestFriend: User? // Nested User object
var friends: [User]? // Array of Users
var birthday: NSDate?
override init() {
super.init()
}
convenience required init?(_ map: Map) {
self.init()
}
// Mappable
func mapping(map: Map) {
username <- map["username"]
age <- map["age"]
weight <- map["weight"]
array <- map["arr"]
dictionary <- map["dict"]
bestFriend <- map["best_friend"]
friends <- map["friends"]
birthday <- (map["birthday"], DateTransform())
}
}
类用户:NSObject,可映射{
var用户名:字符串?
变量年龄:Int?
重量:双倍!
变量数组:[AnyObject]?
变量字典:[字符串:AnyObject]=[:]
var bestFriend:User?//嵌套的用户对象
var friends:[用户]?//用户数组
生日:NSDate?
重写init(){
super.init()
}
便利性要求初始化(映射:映射){
self.init()
}
//可映射
func映射(映射:映射){
用户名以上答案的固定版本:
init() {}
required convenience init?(_ map: Map) { self.init() }
2个错误:在override init()上,“initilizer没有从其超类重写指定的初始值设定项”,self上的下一个错误。init()->“type'.->.'的值”没有成员“init”,我没有此类错误。pod'ObjectMapper','~>1.0';Swift 2.1。您可以尝试删除override init(){super.init()}@SergeyDemchenko我得到了与弹药相同的错误,删除override init()无法达到目的。ObjectMapper 1.2 Swift 2.2
init() {}
required convenience init?(_ map: Map) { self.init() }