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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage