フレームワークのクラスを拡張して (ソースコードを直接編集したくない)、 に準拠させたいNSCoding
。
基本的に、ここに私がいる状況を単純化したものがあります:
/* Can't be edited. */
class Car: NSObject {
var color: String?
}
/* Can be edited */
extension Car: NSCoding {
init(coder aDecoder: NSCoder) {
}
func encodeWithCoder(aCoder: NSCoder) {
}
}
問題はinit(coder aDecoder: NSCoder)
、ヘッダー ファイルによると、designated initializer
(でも、これは奇妙ではありませんか? である必要はありませんconvenience initializer
か? ) です。ただし、ドキュメントには、拡張機能は新しい指定された初期化子を追加できないと書かれています。
私の英語は完璧ではなく、何かを見逃したのかもしれません...それとも本当に不可能なのでしょうか?