Я хотел бы расширить класс framework (я не хочу напрямую редактировать исходный код) и сделать его соответствующим 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
?). Однако documentation говорит, что расширение не может добавить новый назначенный инициализатор.
Мой английский не идеален и, может быть, я что-то пропустил... Или это действительно невозможно?