ios類別一樣。通過(guò)objc_setAssociatedObject可以給二個(gè)對(duì)象之間增加聯(lián)系。因?yàn)槭沁\(yùn)行時(shí)的特性,所以需要導(dǎo)
#import <objc/runtime.h>
?objc_setAssociatedObject(self, &imageURLkey, url,OBJC_ASSOCIATION_RETAIN_NONATOMIC);?
這四個(gè)后面的參數(shù)分別表示:源對(duì)象,關(guān)鍵字,關(guān)聯(lián)的對(duì)象和一個(gè)關(guān)聯(lián)策略。
關(guān)鍵策略是一個(gè)枚舉值。
OBJC_ASSOCIATION_ASSIGN = 0,? ? ? <指定一個(gè)弱引用關(guān)聯(lián)的對(duì)象>
OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1,<指定一個(gè)強(qiáng)引用關(guān)聯(lián)的對(duì)象>
OBJC_ASSOCIATION_COPY_NONATOMIC = 3,? <指定相關(guān)的對(duì)象復(fù)制>
OBJC_ASSOCIATION_RETAIN = 01401,? ? ? <指定強(qiáng)參考>
OBJC_ASSOCIATION_COPY = 01403? ? <指定相關(guān)的對(duì)象復(fù)制>
objc_getAssociatedObject(self, &imageURLkey); ?這個(gè)來(lái)獲取關(guān)聯(lián)的對(duì)象。
但我們不需要關(guān)聯(lián)時(shí)。需要移除關(guān)聯(lián)
objc_setAssociatedObject(self, &imageURLkey, nil, OBJC_ASSOCIATION_ASSIGN);