У меня есть протокол Objective C, который требует соответствия NSSecureCoding
:
@protocol MyProtocol <NSObject, NSSecureCoding>
…
@end
У меня есть родительский объект, который хранит ссылку на объект, соответствующий MyProtocol
, и я хотел бы, чтобыродительский объект также должен соответствовать NSSecureCoding
.Когда я пытаюсь это сделать:
required init?(coder aDecoder: NSCoder) {
if let childObject = aDecoder.decodeObject(of: MyProtocol.self, forKey: "childObject") {
self. childObject = childObject
} else {
return nil
}
}
я получаю ошибку: 'decodeObject(of:forKey:)' is unavailable in Swift: use generic 'decodeObjectOfClass(_:forKey:)'
.
Есть ли способ использовать NSSecureCoding, если вы не знаете конкретный класс закодированного вами объекта