關聯引用的使用方法

2021-07-10 18:36:06 字數 1188 閱讀 8226

這年頭如果不會給現有的類新增屬性,就感覺你太 low 了點,光知道通過類別新增、覆蓋方法是不夠的,有的時候我們真的需要給已有類新增個酸爽的屬性,這個類可以是系統的類,也可以是自己寫的類,沒什麼限制!

假如現有工程裡已經有個類singletonobject,我想給他加個屬性,我們知道類別是不可以加屬性的,這裡就要使用 runtime 的技術了—關聯引用;

1.第一步建立個類別檔案,宣告乙個靜態變數,用於被關聯物件的和次物件產生關係;

static

char keyaddress;

@implementation

singletonobject (association)

@end

2.匯入標頭檔案:#import

- (void)settestaddnum:(nsnumber *)testaddnum

- (nsnumber *)testaddnum

3.把 getter 和 setter 方法暴漏到頭檔案中就行了,不過我們習慣了屬性,因此我描述了乙個屬性;

@inte***ce

singletonobject (association)

//通過關聯引用給 singletonobject加上乙個 testaddnum 屬性;

@property (nonatomic, retain) nsnumber *testaddnum;

@end

4.這就ok啦,測試下吧:

singletonobject *single = [singletonobject sharedinstance];

single.testaddnum = @(3597);

nslog(@"---%@",single.testaddnum);

結果必須是列印「—3597」啦!

5.這裡我寫的是個單例類,不過沒關係啦,單利只是保證只有乙個物件而已,我給這個物件關聯乙個 num 物件是木有問題的!

關聯引用+類別有著繼承無法比擬的優勢!不需要建立新類就可以增加新的屬性和方法,對於已有類沒有侵害,不用修改繼承體系!並且使用關聯引用無需管理記憶體,詳細的內部實現介紹請看下篇部落格:**關聯引用;

引用使用 C 引用的使用方法

c 中引用是指給乙個變數起別名,別名和變數指向同一塊的記憶體資料 引用的基本語法 引用的基本語法 資料型別 變數名 該資料型別的變數 int x 10 int a x 引用的注意事項 1.引用在定義時必須初始化 int a 錯誤 引用 a 變數需要初始值設定2.引用在初始化之後就無法修改 用引用做函...

C 引用使用方法

引用是c 對c的擴充。在c c 中指標的作用基本都是一樣的,但c 增加了另外一種給函式傳遞位址的途徑,這就是引用傳遞,它也存在其他程式語言中 1.引用的實質是一段連續空間的別名 2.程式中通過變數來申請並命名記憶體空間 3.通過變數的名字可以使用記憶體空間 引用相當於給變數取別名 基本語法 type...

const常量引用的使用方法

c 程式語言中,對於常量的引用是乙個非常重要的應用技巧。在這篇文章中,我們將會為大家詳細介紹一下有關c 常量引用的相關應用方法,相信大家可以從中學到很多知識。如果是對乙個常量進行引用,則編譯器首先建立乙個臨時變數,然後將該常量的值置入臨時變數中,對該引用的操作就是對該臨時變數的操作。對c 常量引用可...