objc runtime 动态增加属性
生活随笔
收集整理的這篇文章主要介紹了
objc runtime 动态增加属性
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
objective-c中,有類別可以在不修改源碼的基礎(chǔ)上增加方法
使用運行時庫,必須要先引入 objc/runtime.h
可以使用的函數(shù)如下:
OBJC_EXPORT?void?objc_setAssociatedObject(id?object,?const?void?*key,?id?value,?objc_AssociationPolicy?policy)
這個函數(shù)
OBJC_EXPORT?id?objc_getAssociatedObject(id?object,?const?void?*key)
__OSX_AVAILABLE_STARTING(__MAC_10_6,?__IPHONE_3_1);
?
兄弟們,看一個類別和動態(tài)添加屬性的例子:
UILabel+Associate.h
#import <UIKit/UIKit.h>@interface UILabel (Associate)- (void) setFlashColor:(UIColor *) flashColor;- (UIColor *) getFlashColor;@end
UILabel+Associate.m
#import "UILabel+Associate.h" #import <objc/runtime.h>@implementation UILabel (Associate)static char flashColorKey;- (void) setFlashColor:(UIColor *) flashColor{objc_setAssociatedObject(self, &flashColorKey, flashColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC); }- (UIColor *) getFlashColor{return objc_getAssociatedObject(self, &flashColorKey); }@end
調(diào)用代碼:
UILabel *lab = [[UILabel alloc] init];[lab setFlashColor:[UIColor redColor]];NSLog(@"%@", [lab getFlashColor]);
?
轉(zhuǎn)載于:https://www.cnblogs.com/iaos/p/5211500.html
總結(jié)
以上是生活随笔為你收集整理的objc runtime 动态增加属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “怀哉聊一陈”上一句是什么
- 下一篇: 黄山风景区离市区有多远