繁体   English   中英

失败的初始化器无法满足非失败的初始化器要求

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM