[英]Non-failable initializer requirement cannot be satisfied by failable initializer
我有这个结构,我希望它的init
failable
因为我传递的JSON字典可能出问题了:
struct AdminModel:Interface{
var status:Any = ""
var l:String = ""
var p:String = ""
var url:String = ""
init?(json:NSDictionary){
if let status = json["status"] as? Any,
let l = json["l"] as? String,
let p = json["p"] as? String,
let url = json["url"] as? String
{
self.status = status
self.l = l
self.p = p
self.url = url
}else{
return nil
}
}
}
在我添加之前没有问题?
在初始化之后使初始化failable
:那时XCode抱怨:
失败的初始化器('init?')无法满足非失败的初始化器要求'init(json :)'
为什么我的结构不能失效? 我应该宣布协议初始化失败吗?
也许您的Interface
就像:
protocol Interface {
init(json: JSON)
}
但是您的AdminModel的init是init?(json: JSON)
,因此您应该保持一致:
protocol Interface {
init?(json: JSON)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.