Đối với trường hợp đối tượng chúng ta có thể có lớp học của họ tuyên bố một số phù hợp giao thức như trong:ObjC: có một thứ như một "giao thức lớp" không?
@protocol P <NSObject>
- (void) someMethod ;
@end
@interface C : NSObject <P>
@end
@implementation C
- (void) someMethod {
}
@end
Nhưng những gì về lớp học?
tôi thấy mình trong tình huống này:
...
Class c = [self modelClass:kind] ;
if (c) {
model = [c performSelector: @selector(decode:)
withObject: [SExpIO read: [fm contentsAtPath:target]]] ;
}
và tôi muốn có một cách để tôi tuyên bố rằng có một điều như các giao thức cho các phương pháp lớp.
Trong ví dụ trên, tất cả các lớp học mà c có thể là một lớp sơ thẩm (Hmmm ??) của, kê khai
+ (id) decode: (SExp *) root ;
Có cách nào mà tôi có thể chuyển đổi trên vào:
if (c) {
model = [c decode: [SExpIO read: [fm contentsAtPath:target]]]
}
bằng cách sử dụng tuyên bố "lớp giao thức" phù hợp?
Tuyệt vời! Cảm ơn – verec