iOS 开发之 runtime运行时模拟成员变量
来源:互联网 发布:淘宝网发货地址不一样 编辑:程序博客网 时间:2024/06/05 11:47
在类别中是无法使用成员变量的 所以需要利用runtime的运行时原理来模拟成员变量
首先导入头文件 <Objct/runtime.h>
声明对象
@progress (n,s)NSString *qipa;
然后再get set方法中
static char NSStringKey
运行时模拟成员变量
#pragma mark --运行时模拟成员变量
-(void)setQipa:(NSString *)qipa{
//手动实现键值观察 通知系统该值即将改变
[self willChangeValueForKey:@"NSStringKey"];
//将两个对象进行关联 被关联对象 关键字 关联对象 关联策略
objc_setAssociatedObject(self, &NSStringKey, qipa, OBJC_ASSOCIATION_ASSIGN);
//手动实现键值观察 通知系统该值已经改变
[self didChangeValueForKey:@"NSStringKey"];
}
#pragma mark --运行时获取关联成员变量
-(NSString *)qipa{
//获取关联对象
return objc_getAssociatedObject(self, &NSStringKey);
}
#pragma mark --运行时断开成员变量 不建议使用
//-(void)remove{
// objc_removeAssociatedObjects(self);
//}
这样就可以在分类中使用成员变量了
1 0
- iOS 开发之 runtime运行时模拟成员变量
- iOS学习笔记56(Runtime)-Objective-C Runtime 运行时之二:成员变量与属性
- iOS开发之运行时Runtime
- 【iOS开发-117】block为什么用copy?利用runtime运行时的objc_方法为分类扩充成员变量
- Runtime 运行时:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Objective-C Runtime 运行时之二:成员变量与属性
- Recast & Detour 寻路引擎的基本流程
- 字符串-delphi
- 数据库字段分组需求
- COCOS2DX ANDROID 打印不出日志
- Ext.js5引用和引用持有者(1)
- iOS 开发之 runtime运行时模拟成员变量
- 在xampp中的Apache配置虚拟主机
- redis 学习手册之列表数据类型Lists操作命令
- Maven plugin中的lifecycle、phase、goal、mojo概念及作用的理解
- AJAX 跨域请求 - JSONP获取JSON数据
- 数据库读写分离
- 设置VisualSVN Server提交前必须写信息(备注)
- 复选框选中的判断~
- OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类