今天看項目老代碼 看到 objc_setAssociatedObject , 因為之前很少用runtime方法,不知所以,就網上查了下,本文涉及這兩個方法,簡單來說 一個負責賦值,一個負責取值
//給指定對象添加屬性,并設置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
};
//下面是一個簡單的使用
首先導入頭文件#import<objc/runtime.h>
拖拽一個 button點擊方法下給alert添加屬性@"key property"對應value @"李凱利",點擊alert 獲取添加的屬性值
1.jpg
運行結果:
2.jpg
//擴展
//移除指定對象實例的所有擴展屬性
OBJC_EXPORT void objc_removeAssociatedObjects(id object)
OBJC_AVAILABLE(10.6, 3.1, 9.0, 1.0);