OC中Category(与Swift中的扩展类似)
2016-09-19 本文已影响227人
Dove_Q
在Category中添加成员变量
.h文件
@interface UIView (UIViewHelp)
@property (nonatomic,copy)NSString *name;
@end
.m文件
//特别注意要导入runtime包才可以对category的成员变量实现set和get方法提供中间桥梁
#import <objc/objc-runtime.h>
@implementation UIView (UIViewHelp)
- (void)setName:(NSString *)name{
objc_setAssociatedObject(self, "kname", name, OBJC_ASSOCIATION_COPY);
}
- (NSString *)name{
NSString* _name = (NSString*)objc_getAssociatedObject(self, "kname");
return _name;
}
@end
扩展(与swift的扩展完全不同,只是名字一样而已)
一般用于文件中定义私有变量
@interface ViewController ()
{
NSInteger _count;
}
@end