2
struct User: Mappable {

  init?(map: Map) {

  }

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

  var token : String!
  var email : String!
}

I'm declaring my strings as conditionally wrapped so that I can use directly with out wrapping, but after mapping all my strings to access I need to wrap again?

Why do need to wrap again?

Ozgur Vatansever
  • 49,246
  • 17
  • 84
  • 119
siva krishna
  • 1,149
  • 2
  • 15
  • 23

1 Answers1

3

You don't need the wrapping if you check the values in the initializer, something like this will work.

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"]
    }
}

Now you can use token and email in your code without wrapping

Ana Llera
  • 1,376
  • 16
  • 32