iOS Category给一个类添加属性

268 阅读1分钟

涉及到第三方库的一个model类新增一个属性,一开始想着用extension或者继承model类。但是extension给属性赋值会报错,继承也可以,但是涉及到的代码改动比较多,改动比较大最后觉得用Category实现方便。

.h文件:

@property (nonatomic, assign) BOOL isSelected; // 是否选中

.m文件:

#import "C2IMUserInfo+Selected.h"
#import <objc/runtime.h>

static void * kIsSelected = &kIsSelected;

@implementation C2IMUserInfo (Selected)

@dynamic isSelected;

- (BOOL)isSelected {
    return [objc_getAssociatedObject(self, kIsSelected) boolValue];
}

- (void)setIsSelected:(BOOL)isSelected {
    return objc_setAssociatedObject(self, kIsSelected, [NSNumber numberWithBool:isSelected], OBJC_ASSOCIATION_ASSIGN);
}

@end

PS:使用BOOL类型的报错问题。