Tôi muốn mở rộng một lớp khung (Tôi không muốn chỉnh sửa mã nguồn trực tiếp) và làm cho nó phù hợp với NSCoding
.Thêm NSCoding làm Phần mở rộng
Về cơ bản, đây là một việc đơn giản hóa về tình hình Tôi đang ở:?
/* Can't be edited. */
class Car: NSObject {
var color: String?
}
/* Can be edited */
extension Car: NSCoding {
init(coder aDecoder: NSCoder) {
}
func encodeWithCoder(aCoder: NSCoder) {
}
}
Vấn đề là init(coder aDecoder: NSCoder)
là, theo các tập tin tiêu đề, một designated initializer
(không này lạ mặc dù không nên nó là một convenience initializer
?). Tuy nhiên, tiện ích mở rộng documentation cho biết không thể thêm trình khởi tạo được chỉ định mới.
Tiếng Anh của tôi không hoàn hảo và có thể tôi đã bỏ sót điều gì đó ... Hay thực sự là không thể?