0

这是我的 LoginData 模型类:

class LoginData
{
    var sessionToken : String!
    init(fromJson json: JSON!)
    {
    if json == nil
     {
      return 
     }
    sessionToken = json["Session_Token"].stringValue
   }
}

我想为以下类中的类创建实例:

  class Confirm
{
 var modelobj = model()
   // If I used to create instance I got error like this( **Missing argument for parameter 'fromJson' in call**) and how to create instance for this class

}
4

1 回答 1

1

正如其他人所提到的,这个初始化器应该是失败的。sessionToken不再需要是隐式展开的可选项 ( String!)。我还将代码格式化为 Swift 的约定。

class LoginData {
    var sessionToken: String

    init?(fromJson json: JSON) {
        guard let sessionToken = json["Session_Token"].stringValue else {
            return nil
        }

        self.sessionToken = sessionToken
    }
}

然后实例化它:

guard let loginData = LoginData(fromJson: someJson) else {
    //Initializer failed. Recover from error here.
    //Must break, return, or call @noreturn function
}

//use loginData

必须使用 json 参数调用初始化程序,因为不存在没有参数的初始化程序。

于 2016-07-12T16:42:25.257 回答