1. 程式人生 > 其它 >iOS開發-學習筆記-物件初始化

iOS開發-學習筆記-物件初始化

技術標籤:iOS學習筆記iosobjective-c

建立物件有兩種方法:
[類名 new]
[[類名 alloc] init];
慣例是使用第二種. 兩種效果基本等價,不同的是第二種可以在分配記憶體時地址連續,更節約資源消耗,還可以呼叫多個init方法初始化.
建立物件後需要進行(記憶體)分配和初始化兩個操作,這兩個操作是分離的,分配是從作業系統獲得一塊記憶體,初始化是將這塊記憶體用於儲存物件.使用的方法是巢狀呼叫

Car *car = [[Car alloc] init];

為什麼要用巢狀: 因為初始化返回的方法可能與分配的物件不同.
惰性求值: 即使目前沒有設定自定義屬性的值,也應該等到呼叫者需要時再建立物件.

(有點類似Java裡面的單例模式下的懶漢模式了)

在自己的初始化方法中,需要呼叫自己指定的初始化函式或者超類的指定初始化函式,
一定要將超類的初始化函式的返回值賦給self, 並返回自己的init方法的值.

屬性

屬性的作用: 組合新的預編譯指令和新的訪問器語法,減少程式碼數量.
屬性關鍵字@property, 可以自動宣告屬性的setter和getter方法,