Wie man Int optional mit NSCoding codiert
Ich versuche, zwei Eigenschaften als optionale Elemente in einer benutzerdefinierten Klasse zu deklarieren - einen String und einen Int.
Ich mache das in MyClass:
var myString: String?
var myInt: Int?
Ich kann sie ok wie folgt dekodieren:
required init?(coder aDecoder: NSCoder) {
myString = aDecoder.decodeObjectForKey("MyString") as? String
myInt = aDecoder.decodeIntegerForKey("MyInt")
}
Aber das Codieren gibt einen Fehler in der Int-Zeile aus:
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeInteger(myInt, forKey: "MyInt")
aCoder.encodeObject(myString, forKey: "MyString")
}
Der Fehler verschwindet nur, wenn XCode mich auffordert, das Int wie folgt zu entpacken:
aCoder.encodeInteger(myInt!, forKey: "MyInt")
Aber das führt offensichtlich zu einem Absturz. Meine Frage ist also, wie kann ich das Int als optional behandeln lassen, wie es der String ist? Was vermisse ich