簡體   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