2012-08-10 39 views
-1

可能重複:
Objective-C - When to use 'self'IOS:在.h中聲明屬性在self.var和just var之間有什麼區別?

我需要一個變量以從一個視圖向另一個傳遞所以由在.H稱爲StringC財產,並使用self.StringC訪問它(那部分工作)。

我還需要一些可以在整個視圖中訪問的數組,但我以不同的方式使用它們。

比如我有lvLabelArray和我使用

self.lvLabelArray=[[NSMutableArray alloc]init]; 

再後來我用

[lvLabelArray addObject:LabelText]; 

是否有和

[self.lvLabelArray addObject:LabelText]; 

之間的差異?

對不起,我不知道這些變量的條款。

回答

1

那裏有一個重要的區別。

self.attribute根據情況檢查對象的getter或setter函數。這允許您設置初始值,觸發更新消息或其他任何內容。

直接訪問「屬性」直接到底層變量,所以你繞過所有。因此,這絕對是不太可取的工作方式。

避免這種混淆和普通錯誤的常見方法是重新命名底層變量。而不僅僅是「@synthesize屬性」,使用「@synthesize attribute = _attribute」。這將像以前一樣創建getter和setter方法,但它們將會將該基礎變量命名爲「_attribute」。這意味着嘗試使用「屬性」而沒有「自我」會觸發編譯器錯誤。

相關問題