我想在 objective-c 中做这样的事情:
@protocol MyProtocol <NSObject>
-(void)sampleMethod;
@end
@interface SampleClass1 : NSObject
@end
@interface SampleClass2
@property NSMutableArray* array;
@end
然后当我这样做时:
[array addObject:[SampleClass1 class]];
这应该发出警告,因为SampleClass1不符合协议MyProtocol。提前致谢。
最佳答案
对于这样的事情,您必须向NSMutableArray
添加一个类类别:
@interface NSMutableArray (AddConformingObject)
- (void)addConformingObject:(id<MyProtocol>)object;
@end
@implementation NSMutableArray (AddConformingObject)
- (void)addConformingObject:(id<MyProtocol>)object {
[self addObject:object];
}
@end
然后只需使用
addConformingObject:
代替addObject:
即可。关于ios - 在“类”对象上实现协议(protocol)一致性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25171683/