Как ссылаться на существующие объекты во время восстановления состояния 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)?

0 ответов

Другие вопросы по тегам