以下への準拠を必要とする 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 を使用する方法はありますか?