非得添加,只能通过Runtime
- 对外暴露的是.h文件,对内暴露的是category文件
- 在category中,增加SDK内部调用的属性,并在runtime的时候分配内存,设置步骤如下
-
在category的.h文件中,加入属性
-
在category的.m文件中,进行实现
例如:
//.h文件
@property (nonatomic, strong) NSString *stuName;
//.m文件
#import <objc/runtime.h>
static const void *propertyNameKey = &propertyNameKey;
@dynamic propertyName;
#pragma mark -setter and getter
- (NSString *)propertyName {
return objc_getAssociatedObject(self, propertyNameKey);
}
- (void)setPropertyName:(NSString *)propertyName{
objc_setAssociatedObject(self, propertyNameKey, propertyName, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
网友评论