当声明一个实例变量时,如果我在@interface和@property下声明它,它会有所不同吗?例如:
@interface MyViewController : UIViewController {
NSString *myString;
}
@property (nonatomic, retain) NSString *myString;
如果我拿出@interface下的那个会不会有意义?我一直这样做,想知道它是否有用。
答案 0 :(得分:7)
使用现代编译器(LLVM的最新版本),不需要将实例变量与@property一起声明(如tc所示;实际上是@synthesize指示编译器保留一个插槽,否则,你自己存储)并且这样做不会改变任何东西。
一个建议;当你@synthesize时,做一些像@synthesize myString = myString_;
这样的事情,让iVar有一个不同的名字,因此,当你打算穿过房产时,不可能意外地直接访问。