Mã của tôi thực sự đơn giản.Không thể gọi phương thức nhập trên lớp phù hợp với giao thức
giao thức của tôi:
protocol BaseEntity
{
class func getInstance(sourceObject: [NSObject : AnyObject], context: AnyObject!) -> BaseEntity
init()
}
Sau đó, trong một lớp khác tôi có phương pháp này:
private func convertJSONDictionaryIntoModel(jsonDictionary : [NSObject : AnyObject], mapClass: BaseEntity.Type) -> BaseEntity
{
let object = mapClass.getInstance(jsonDictionary, context: nil)
return object
}
tôi nhận được một lỗi biên dịch trên dòng đầu tiên mà đọc là "thành viên truy cập của giao thức giá trị kiểu BaseEntity .Type is unimplemented "
Theo như tôi có thể nói, điều này có thể xảy ra trong Swift.
Thật không may, tôi không thể tìm thấy giải pháp nào cho điều này. Cách duy nhất tôi có thể làm cho nó chấp nhận nó là bằng cách sử dụng Generics, nhưng Generics có những hạn chế riêng của họ quá. Những loại vấn đề này khiến tôi thực sự nghĩ rằng ngôn ngữ không đầy đủ. Mục đích của họ là làm mọi thứ dễ dàng hơn và rõ ràng hơn ... cũng đoán xem nếu họ không hỗ trợ những thứ như thế này và người ta phải dựa vào một số cách giải quyết như cách bạn vạch trần, điều đó khá là hơi say. – mdonati