在runtime 中有一個對象的關聯的用法:
OC中的關聯就是在已有類的基礎上添加對象參數。來擴展原有的類,需要引入#import <objc/runtime.h>頭文件。
關聯是基於一個key來區分不同的關聯。
static char key;
常用的3個方法
1>objc_removeAssociatedObjects(self); 移除關聯
2>
1 創建關聯(源對象,關鍵字,關聯的對象和一個關聯策略。)
2 關鍵字是一個void類型的指針。每一個關聯的關鍵字必須是唯一的。通常都是會採用靜態變量來作爲關鍵字。
3 關聯策略表明了相關的對象是通過賦值,保留引用還是複製的方式進行關聯的;關聯是原子的還是非原子的。這裏的關聯策略和聲明屬性時的很類似。
objc_setAssociatedObject(self, &key, block, OBJC_ASSOCIATION_COPY); 設置關聯
3>objc_getAssociatedObject(self, &key); 設置關聯
參考文章:http://itjoy.org/?p=615