0

我正在用Objective c写课。

我想在我的主视图控制器中使用 double 类型的私有属性。

我的代码:MainViewController.m

#import "MainViewController.h"

@interface MainViewController ()

@property (nonatomic) BOOL x;

@end

@implementation MainViewController

现在,我知道使用 Xcode 4.4 进行自动属性合成,但如果我不写 @synthesize x; 我只能使用“self.x”或“_x”访问我的属性“x”

如果我写@synthesize x

我只需写“x”即可访问。

我知道这是一个简单的问题,但我真的很想了解背后的代码发生了什么,以及这两种方法之间的本质区别。

谢谢

4

1 回答 1

1

如果你写@synthesize x;,你可以使用self.xx

如果您不合成编译器在幕后执行的属性:@synthesize x = _x. 现在您可以使用self.x_x

但是您也可以合成并为 ivar 分配一个不同的名称,例如@sythesize x = _aBoolen——现在您可以使用self.x_aBoolean

于 2013-05-12T16:35:49.763 回答