iOS 例項變數

2021-07-07 02:49:36 字數 714 閱讀 2341

不需要@synthesize語句

在某個版本之前,對應@property,在implementation中需要寫對應的@synthesize語句,來合成access方法,不過在一次公升級之後,現在已經不再需要了

不需要重複宣告例項變數

實際上,@property宣告的是屬性,並不是例項變數。但是編譯器會根據屬性,自動生成例項變數,和對應的access方法。所以已經在inte***ce裡宣告了@property,就不再需要在implementation裡再宣告例項變數了。

自動生成的例項變數命名規則

要記住,屬性不是例項變數,而是根據屬性會生成例項變數(和對應的access方法)。所以,屬性名叫name,而例項變數的名字並不是name。在我這個環境ios7+xcode5,命名規則似乎是在屬性前面加上_

比如@property nsstring* name;

生成的例項變數名將是_name

所以要訪問這個例項變數,就有2種方法,或者使用.操作符

nsstring *n = self.name;

這等價於:

nsstring *n = [self name]

或者,直接使用例項變數名:

nsstring *n = _name;

但是,由於文件中並沒有明確說明這個命名規則,所以後者類似於潛規則。如果版本公升級後,命名規則改變了,**就需要重新編譯。因此,使用.操作符,是更保險的做法。命名規則,只要知道就可以了

iOS方法和例項變數

類的方法和c語言的函式不同,其在邏輯上要麼屬於類,要麼屬於物件。即所有的方法必須使用 類 方法 號方法 或者 物件 方法 號方法 的形式來呼叫。如果在定義方法時,最後乙個引數名後面增加逗號和三點 即表明該方法可以接受多個引數值。import inte ce person nsobject prope...

類變數,例項變數

1 例項變數和類變數 每個物件的例項變數都分配記憶體 類變數 即 static 變數 僅在生成第乙個物件時分配記憶體,所有例項物件共享同乙個類變數,每個例項物件對類變數的改變都會影響到其它的例項物件。類變數可通過類名直接訪問,無需先生成乙個例項物件,也可以通過例項物件訪問類變數。區別在於 類變數是所...

IOS例項隨筆

工廠方法例項化 用於簡化物件的例項化 通常與類名相同。首字母小寫 工廠方法可以傳遞引數 id 類名 彈出輸入 endediting yes 在類檔案的.h檔案中之所以對檢視是weak弱引用,是因為在nib檔案中 故事板和xib 是已經強引用了 可以用for in方法快速將檢視放入陣列中 iskind...