例如,我有几个班级:
@interface SomeModel : NSObject
@end
@interface SomeAnotherModel : NSObject
@property NSArray<SomeModel *> *modelsArray;
@end
如果我需要使用NSArray子类怎么办?
@interface SomeModel : NSObject
@property ArraySubclass<SomeModel *> *modelsArray;
@end
如何实现ArraySubclass以支持NSArray等泛型?
答案 0 :(得分:0)
这是您使用泛型suppport声明其中一个类的方法:
@interface ArrayLikeClass<ObjectType>: NSObject
- (void)add:(ObjectType)obj;
- (ObjectType)objectAtIndex:(NSInteger)index;
@end
@implementation ArrayLikeClass
- (void)add:(id)obj {
// ...
}
- (id)objectAtIndex:(NSInteger)index {
// ...
}
@end
您将类声明为通用类,但是在您的实现文件中,您将通用参数替换为id
。