У меня есть имя переменной экземпляра в String
var name: String
Мой класс реализует протокол NSCoding. Так что для имени у меня был
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(self.name, forKey: kName)
}
required init(coder aDecoder: NSCoder) {
self.name = aDecoder.decodeObjectForKey(kName) as String // CRASH HERE
}
Результат? Во время инициирования с декодером я получал крах во время выполнения. Я изменил init на это:
var temp = aDecoder.decodeObjectForKey(kName) as NSString!
self.name = aDecoder.decodeObjectForKey(kName) as String
и понял, что значение temp имеет правильное значение NSString. поэтому я подумал, что строка ниже собирается исправить это, но она выдает ошибку компоновщика:
self.name = aDecoder.decodeObjectForKey(kName) as NSString!
вопросы: как взять temp и поместить его в имя?