Runtime 關聯對象的使用

如今你準備用一個系統的類,可是系統的類並不能知足你的需求,你須要額外添加一個屬性。這個時候,runtime的關聯屬性就發揮它的做用了。其實,你還能夠把添加和獲取關聯對象的方法寫在你須要用到這個功能的類的類別中,方便使用。web

首先,引入頭文件 #import<objc / runtime.h>spa

其次,重寫getter & setter 方法orm


 #import<objc / runtime.h>對象

@implementation UIImageView (WebCache)內存

- (void)setCurrentUrl: (NSSting *)currentUrl {ci

//運行時機制來存儲數據get

參數的介紹:1)要被關聯的對象it

                      2)要被關聯的keyio

                      3) 要被關聯的valueimport

                      4) 策略即內存的引用關係

有如下幾種策略

enum {    OBJC_ASSOCIATION_ASSIGN = 0,  

              OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1,    

              OBJC_ASSOCIATION_COPY_NONATOMIC = 3,   

              OBJC_ASSOCIATION_RETAIN = 01401,    

              OBJC_ASSOCIATION_COPY = 01403 };

}

objc_setAssociatedObject(self,"abc",cuurentUrl,OBJC_ASSOCIATION_COPY);

}


- (NSSting *)cuurentUrl {

//取出cuurentUrl

參數:1)要被關聯的對象

           2)要被關聯的key

return objc_getAssociatedObject(self,"abc");

}

相關文章
相關標籤/搜索