Sto tentando di dichiarare due proprietà come opzionali in una classe personalizzata: una stringa e un Int.Come codificare Int come facoltativo utilizzando NSCoding
sto facendo questo in MyClass:
var myString: String?
var myInt: Int?
loro posso decodificare ok come segue:
required init?(coder aDecoder: NSCoder) {
myString = aDecoder.decodeObjectForKey("MyString") as? String
myInt = aDecoder.decodeIntegerForKey("MyInt")
}
Ma codifica li dà un errore sulla linea Int:
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeInteger(myInt, forKey: "MyInt")
aCoder.encodeObject(myString, forKey: "MyString")
}
L'errore scompare solo quando XCode mi suggerisce di scartare Int come segue:
aCoder.encodeInteger(myInt!, forKey: "MyInt")
Ma questo ovviamente si traduce in un incidente. Quindi la mia domanda è, come posso ottenere che l'Int sia trattato come un optional come lo String? Cosa mi manca?
Grazie per la risposta e spiegazione Sulthan. Ora sto usando myInt = aDecoder.decodeObjectForKey ("MyInt") come? Int e aCoder.encodeObject (myInt, forKey: "MyInt") e funziona correttamente. – Eatton