Ý định của tôi là tạo ra một lớp chung trong Swift mà phù hợp với một giao thức Objective-C:Swift Generic Class thực hiện một Objective-C Nghị định thư
Lớp là:
class BaseViewFactoryImpl<T> : NSObject, BaseView {
func getNativeInstance() -> AnyObject {
return String("fsd")
}
}
Giao thức BaseView
là :
@protocol BaseView <NSObject>
- (id)getNativeInstance;
@end
Trình biên dịch nói với tôi:
Type 'BaseViewFactoryImpl<T>' does not conform to protocol 'BaseView'
Nếu tôi xóa <T>
thì không có lỗi.
Có gì sai ở đây? Làm cách nào để tôi có thể thực hiện đúng lớp chung?
Nó chỉ là không thể với các lớp học chung chung, xem http://stackoverflow.com/questions/26097581/generic-nsoperation-subclass-loses-nsoperation-functionality cho một vấn đề tương tự. –