2013-05-12 81 views
0

我正在編寫目標c中的課程。目標c中的私人財產

我想在我的主視圖控制器中輸入double的私有屬性。

我的代碼:MainViewController.m

#import "MainViewController.h" 

@interface MainViewController() 

@property (nonatomic) BOOL x; 

@end 

@implementation MainViewController 

現在,我知道taht自動屬性合成的Xcode 4.4 但如果我不寫@synthesize X; 我可以訪問我的財產「X」只能用「self.x」或「_x」

,如果我寫 @synthesize X

我可以訪問只寫「×」。

我知道這是一個簡單的問題,但我真的想了解是什麼在後面的代碼, 和兩種方法之間的本質區別發生。

感謝

+1

默認實際上是@synthesize x = – 2013-05-12 16:32:01

+0

@DrummerB不是那一個,但我確定這個問題已經被問到 – 2013-05-12 16:32:52

+0

我在我對這個問題的回答中解釋了所有這些,這就是爲什麼我把它連接起來的原因。 – DrummerB 2013-05-12 16:35:17

回答

1

如果你寫@synthesize x;您可以使用self.xx

如果不綜合編譯器做幕後這背後的屬性:@synthesize x = _x。現在,您可以使用self.x_x

但是,您可以合成併爲其分配不同的名稱,例如,現在你可以使用self.x_aBoolean

+0

請注意,'self.x'和'_x'作爲訪問器或setter在行爲上有很大的不同,前者是KV可觀察的方法調用,後者不是。 – bbum 2013-05-12 17:32:08