通过以下代码,我尝试定义一个简单的模型类,它是可失败的初始化器,该初始化器将(json-)字典作为参数。nil如果用户名未在原始json中定义,则初始化程序应返回。
1.为什么不编译代码?错误消息显示:
从初始化器返回nil之前,必须初始化类实例的所有存储属性。
那没有道理。为什么计划返回时初始化那些属性nil?
2.我的方法正确吗?或者是否有其他想法或通用模式可以实现我的目标?
class User: NSObject {
let userName: String
let isSuperUser: Bool = false
let someDetails: [String]?
init?(dictionary: NSDictionary) {
if let value: String = dictionary["user_name"] as? String {
userName = value
}
else {
return nil
}
if let value: Bool = dictionary["super_user"] as? Bool {
isSuperUser = value
}
someDetails = dictionary["some_details"] as? Array
super.init()
}
}
largeQ
守候你守候我