Mam instancji nazwę zmiennej w Stringobsada NSString! String w szybkim
var name: String
Moja klasa implementuje protokół NSCoding. Tak więc na imię miałem
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(self.name, forKey: kName)
}
required init(coder aDecoder: NSCoder) {
self.name = aDecoder.decodeObjectForKey(kName) as String // CRASH HERE
}
Wynik? Podczas inicjowania z dekoderem otrzymywałem awarię podczas uruchamiania. Zmieniłem init na:
var temp = aDecoder.decodeObjectForKey(kName) as NSString!
self.name = aDecoder.decodeObjectForKey(kName) as String
i ustalono, że wartość temperatury zawiera prawidłową wartość NSString. tak myślałem linię poniżej zamierza go naprawić, ale to wydaje się błąd linkera:
self.name = aDecoder.decodeObjectForKey(kName) as NSString!
pytań jest, jak zabrać temp i umieścić go pod nazwą?
Spróbuj: 'self.name = aDecoder.decodeObjectForKey (kName) jako AnyObject! as String' –
Dzięki za odpowiedź, ale nadal się zawiesza. – Arash