2017-04-04 3 views
0
struct User: Mappable { 

    init?(map: Map) { 

    } 

    mutating func mapping(map: Map) { 
    token <- map["token"] 
    email <- map["email"] 
    } 

    var token : String! 
    var email : String! 
} 

私は文字列を条件付きラップとして宣言していますので、直接ラッピングすることができますが、アクセスするすべての文字列をマッピングした後、再びラップする必要がありますか?Object Mapperが私の値をオプションにする

なぜ、もう一度折り返す必要がありますか?

+0

をラップすることなく、あなたのコード内のトークンと電子メールを使用することができますか?もし価値がなく、それがゼロでないならば? –

+0

しかし、もし私がJsonの値が明確に反映されているのであれば、 –

+0

反射に反映するhttps://developer.apple.com/swift/blog/?id=37 –

答えて

1

イニシャライザの値をチェックする場合は、ラッピングは必要ありません。このようなものが動作します。あなたはJSONの値があった場合はわからないので

struct User: Mappable { 

    var token: String 
    var email: String 

    init?(map: Map) { 
     guard let token: String = map["token"].value(), 
       let email: String = map["email"].value() else { 

      print("User should have token and email") 
      return nil 
     } 

     self.token = token 
     self.email = email 
    } 

    mutating func mapping(map: Map) { 
     token <- map["token"] 
     email <- map["email"] 
    } 
} 

今、あなたはそこに何をする必要があり、

関連する問題