背景:
项目中为了减少AppDelegate中的代码为AppDelegate写了一个分类,部分代码放在了该分类中。有一个功能需要发送通知,在AppDelegate中进行监听并将通知发送过来的数据进行存储(在AppDelegate的分类中实现)。由于存储的数据需要在全局进行使用,所以本人就想到了在AppDelegate中添加一个属性,将接收到的数据存储在该属性中,以供在AppDelegate的分类中进行全局使用。
代码实现:
(如为一个Person的分类增加一个name的属性)
.m中的代码
- (void)setName:(NSString *)name{
objc_setAssociatedObject(self, @selector(name), name, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (NSString *)name{
return objc_getAssociatedObject(self, @selector(name));
}
注意:在.m文件中引入头文件: <objec/runtime.h>
这样我们就为一个类的分类动态添加了一个属性。
demo地址:https://gitee.com/liangsenliangsen/runtime_add_member_properties.git
本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊
网友评论