iOS 开发之 runtime运行时模拟成员变量
2015-12-16 10:24
302 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fantianminios/article/details/50324201
在类别中是无法使用成员变量的 所以需要利用runtime的运行时原理来模拟成员变量
首先导入头文件 <Objct/runtime.h>
声明对象 @progress (n,s)NSString *qipa; 然后再get set方法中 static char NSStringKey 运行时模拟成员变量
首先导入头文件 <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);
//}
这样就可以在分类中使用成员变量了
相关文章推荐
- 【iOS开发-117】block为什么用copy?利用runtime运行时的objc_方法为分类扩充成员变量
- iOS开发 - runtime运行时一些实用方法
- iOS 开发 深入浅出Runtime运行时之官方翻译--动态方法处理
- 【iOS开发-97】MediaPlayer框架中MPMoviePlayerController类视频播放的使用,运行时runtime
- iOS开发之关于Runtime运行时:类与对象
- iOS开发之runtime运行时机制
- iOS开发之Runtime运行时机制
- ios开发- 利用运行时(runtime)字典转模型
- iOS 开发 深入浅出Runtime运行时之方法动态处理(Dynamic Method Resolution)详解
- iOS开发之runtime运行时机制(一)
- iOS开发——RunTime(运行时)
- [IOS 开发] runtime 运行时机制 完全解读
- IOS开发——Runtime运行时
- iOS 开发 Runtime 运行时机制 完全解读
- iOS 开发 深入浅出Runtime运行时之官方指南翻译--runtime介绍
- iOS开发小技巧--利用运行时得到隐藏的成员变量
- iOS开发之运行时Runtime
- iOS开发runtime运行机制理解
- iOS开发笔记>> runTime 运行时机制简介
- iOS开发——高级技术OC篇&运行时(Runtime)机制