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 に答える