今天看項(xiàng)目老代碼 看到 objc_setAssociatedObject , 因?yàn)橹昂苌儆胷untime方法,不知所以,就網(wǎng)上查了下,本文涉及這兩個(gè)方法,簡(jiǎn)單來說 一個(gè)負(fù)責(zé)賦值,一個(gè)負(fù)責(zé)取值
//給指定對(duì)象添加屬性,并設(shè)置value?
0.jpg
//policy 策略 枚舉
enum {
OBJC_ASSOCIATION_ASSIGN = 0,
OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1,
OBJC_ASSOCIATION_COPY_NONATOMIC = 3,
OBJC_ASSOCIATION_RETAIN = 01401,
OBJC_ASSOCIATION_COPY = 01403
};
//下面是一個(gè)簡(jiǎn)單的使用
首先導(dǎo)入頭文件#import<objc/runtime.h>
拖拽一個(gè) button點(diǎn)擊方法下給alert添加屬性@"key property"對(duì)應(yīng)value @"李凱利",點(diǎn)擊alert 獲取添加的屬性值
1.jpg
運(yùn)行結(jié)果:
2.jpg
//擴(kuò)展
//移除指定對(duì)象實(shí)例的所有擴(kuò)展屬性
OBJC_EXPORT void objc_removeAssociatedObjects(id object)
OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0);