2015-11-01 2 views
15

Einfache Sache, die mir Kopfschmerzen bereitet - wie man ein Objekt, das einem mappbaren Protokoll entspricht, noch ohne JSON initialisiert.ObjectMapper - Objekt initialisieren IOS

Was würde ich tun, ist einfach Objekt leer Benutzer initialisieren, wie dies in Code:

let user = User() 

jedoch, die mir Fehler gibt: "fehlendes Argument für den Parameter # 1 in Call"

Ich konnte es in Version 0.14 mit swift 1.2 machen, aber jetzt funktioniert es nicht. Weißt du, wie man es jetzt in Swift 2 und New Object Mapper macht? (Ich weiß, wie es zu initialisieren mit json etc, ich will nur dieses Objekt für andere Zwecke initialisieren, und ich kann nicht herausfinden, wie)

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()) 
} 
} 

bitte helfen!

Antwort

19

Folgende Arbeiten sollten:

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()) 
} 
} 
+1

2 Fehler: auf Überschreibung init() "Initilaizer außer Kraft setzen keine bestimmten Initialisierung von ihrer Oberklasse", das nächste Fehler auf self.init() -> "Wert des Typs '_ -> _" hat kein Mitglied' 'init " – Ammo

+0

Ich habe solche Fehler nicht. pod' ObjectMapper ',' ~> 1.0 '; Swift 2.1 kann versuchen, override init() {super.init()} zu entfernen. –

+0

@SergeyDemchenko Ich habe den gleichen Fehler wie Ammo und Entfernen override init() vereitelt den Zweck. ObjectMapper 1.2 Swift 2.2 – Questioner

7

Fest Version von oben Antwort:

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