Как ссылаться на существующие объекты во время восстановления состояния NSCoding
У меня есть класс, который реализует NSCoding и содержит ссылку на объект UIView...
class A: NSObject, NSCoding {
var view: UIView!
init(view: UIView) {
super.init()
commonInit(view)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit(/* <Need to pass the existing view somehow> */)
}
override func encodeWithCoder(aCoder: NSCoder) {
super.encodeWithCoder(aCoder)
}
}
view
прошло - это особый тяжеловесный пользовательский класс представления, который мне не нужно сериализовать. Здесь очень много A
объекты и все они ссылаются на этот же обычай UIView
, Но во время восстановления состояния мне нужна ссылка на него, чтобы восстановить случаи A
, view
экземпляр уже существует в момент, когда он мне нужен, и мой пользовательский UIViewController фактически инициирует последовательность декодирования:
override func decodeRestorableStateWithCoder(coder: NSCoder) {
// How to get self.customView to A.init?(coder aDecoder: NSCoder) where
// it is needed?
let view = self.customView
self.a = coder.decodeObjectForKey("aKey") as! A
}
Но как я могу сделать существующее представление доступным для A.init?(coder aDecoder: NSCoder)
?