[英]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.