我在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”即可访问。
我知道这是一个简单的问题,但我真的想了解背后代码中发生了什么, 以及两种方法之间的本质区别。
谢谢
答案 0 :(得分:1)
如果您撰写@synthesize x;
,可以使用self.x
或x
如果您没有合成属性,编译器会在幕后执行此操作:@synthesize x = _x
。现在,您可以使用self.x
或_x
但是你也可以合成并为ivar分配一个不同的名字,例如@sythesize x = _aBoolen
- 您现在可以使用self.x
或_aBoolean