ObjectMapper - initialiser l'objet IOS

chose Simple qui me donne mal à la tête - comment initialiser un objet qui se conforme au protocole mappable, sans aucun JSON encore.

ce que je voudrais faire, c'est simplement initialiser l'objet utilisateur vide dans le code comme ceci:

let user = User()

cependant cela me donne une erreur: "argument manquant pour le paramètre #1 dans l'appel"

j'ai pu le faire dans la version 0.14 avec swift 1.2, mais maintenant ça ne marche pas. Savez-vous comment le faire maintenant dans swift 2 et nouvel objet Mappeur ? (Je sais comment l'initialiser avec json etc, je veux juste pour initialiser l'objet pour d'autres fins, et je ne peux pas comprendre comment)

class User: Mappable {
var username: String?
var age: Int?
var weight: Double!
var array: [AnyObject]?
var dictionary: [String : AnyObject] = [:]
var bestFriend: User?                       // Nested User object
var friends: [User]?                        // Array of Users
var birthday: NSDate?

required init?(_ map: Map) {

}

// Mappable
func mapping(map: Map) {
    username    <- map["username"]
    age         <- map["age"]
    weight      <- map["weight"]
    array       <- map["arr"]
    dictionary  <- map["dict"]
    bestFriend  <- map["best_friend"]
    friends     <- map["friends"]
    birthday    <- (map["birthday"], DateTransform())
}
}

s'il vous plaît aider!

15
demandé sur Ammo 2015-11-02 01:46:54

2 réponses

La suivante devrait fonctionner:

class User: NSObject, Mappable {
var username: String?
var age: Int?
var weight: Double!
var array: [AnyObject]?
var dictionary: [String : AnyObject] = [:]
var bestFriend: User?                       // Nested User object
var friends: [User]?                        // Array of Users
var birthday: NSDate?

override init() {
    super.init()
}

convenience required init?(_ map: Map) {
    self.init()
}

// Mappable
func mapping(map: Map) {
    username    <- map["username"]
    age         <- map["age"]
    weight      <- map["weight"]
    array       <- map["arr"]
    dictionary  <- map["dict"]
    bestFriend  <- map["best_friend"]
    friends     <- map["friends"]
    birthday    <- (map["birthday"], DateTransform())
}
}
21
répondu Sergey Demchenko 2015-11-09 06:56:54

version corrigée de la réponse ci-dessus:

init() {}
required convenience init?(_ map: Map) { self.init() }
7
répondu Andrey Toropchin 2016-07-08 05:35:54