Özel bir sınıfta isteğe bağlı olarak iki özellik bildirmeye çalışıyorum - String ve Int.NSCoding kullanarak isteğe bağlı olarak Int kodlama nasıl yapılır
MyClass içinde yapıyorum:
required init?(coder aDecoder: NSCoder) {
myString = aDecoder.decodeObjectForKey("MyString") as? String
myInt = aDecoder.decodeIntegerForKey("MyInt")
}
Ama onları kodlayan Int hattında bir hata veriyor:
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeInteger(myInt, forKey: "MyInt")
aCoder.encodeObject(myString, forKey: "MyString")
}
şöyle
var myString: String?
var myInt: Int?
tamam bunları deşifre edebilir
Hata yalnızca XCode Int'i aşağıdaki gibi açmak istememi istediğinde kaybolur:
Ancak bu açıkça bir kilitlenme ile sonuçlanır. Yani benim sorum, Int'in String gibi isteğe bağlı bir seçenek olarak nasıl ele alınabilir? Neyi kaçırıyorum?
Yanıt ve açıklama Sulthan için teşekkür ederiz. Şimdi myInt = aDecoder.decodeObjectForKey ("MyInt") kullanıyorum? Int ve aCoder.encodeObject (myInt, forKey: "MyInt") ve iyi çalışıyor. – Eatton