OBJC_ASSOCIATION 关联学习
2015-09-15 21:40
281 查看
实现,添加 NSObject 对象的一个pathLog属性,纪录,我现在跳转到了那一个ViewController。 具体代码如下:
#import <Foundation/Foundation.h>
@interface NSObject (LogController)
@property(nonatomic,strong) NSString *pathLog;
@end
#import "NSObject+LogController.h"
#import <objc/runtime.h>
/**
这种属性的设置,更多的是组件的扩展,对系统类的扩展, 多用于公共的方法。 也就是最上层的方法的添加
这种的形式的写法,其实就是key-val的对应的写法。
其中这里面的@selector(pathLog) 换成 @“key”,也是可以的。
同里这个val也可以是其他。 pathLog 换成 一个block,或者是一个对象都可以。其实也就是一个属性而已。
**/
@implementation NSObject (LogController)
- (void)setPathLog:(NSString *)pathLog{
objc_setAssociatedObject(self, @selector(pathLog), pathLog, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
NSLog(@"程序已经进入--->%@",pathLog);
}
- (NSString *)pathLog{
return objc_getAssociatedObject(self, @selector(pathLog));
}
@end
调用
#import "NSObject+LogController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.pathLog = @"ViewController";
}
打印:
2015-09-15 21:32:22.832 objc_getAssociate_动态生成属性[7228:950729]
程序已经进入--->ViewController
相关文章推荐
- JSPWebShell的进一步提权
- int open(const char * pathname, int flags); http://c.biancheng.net/cpp/html/238.html
- Atlassian JIRA为自定义事件发送通知
- 查找目录下的所有文件中是否含有某个字符串 :正则表达式、find、grep、xargs、awk、sed等
- R-字符串操作
- 从零开始学java(一)--写作目的及java语言概述
- ML基石_3_TypesOfLearning
- Android 多媒体应用——MediaPlayer音频播放
- Qt 学习之路:Canvas
- CF div2 318 C
- 感想
- 白话经典算法系列之七 堆与堆排序
- Maven安装
- linux 开发板移植sqlite3数据库
- HDU 5212
- dijit.form.Select 基本用法
- Linux清除用户登录记录和命令历史方法
- Handler线程间通信
- 全国城市数据Sqlserver数据库创建代码
- 弹幕技术