子类别化
NSArray
这可能很困难,当您只需要一个额外的属性时,您可以通过类别和运行时函数获得另一个选项。在上写一个类别
不可变数组
添加属性并使用关联的对象为属性提供存储。这段代码应该足够了,只需按照应用程序的命名约定进行重命名即可。
@interface NSArray (MyExtensions)
@property (nonatomic) BOOL myProperty
@end
@implementation NSArray (MyExtensions)
static char MyPropertyKey;
- (void)setMyProperty:(BOOL)myProperty
{
objc_setAssociatedObject(self, &MyPropertyKey, @(myProperty), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (BOOL)myProperty
{
NSNumber *propertyNumber = objc_getAssociatedObject(self, &MyPropertyKey);
return [propertyNumber boolValue];
}
@end