这里有两种标题的区别吗?
@interface MyObject: NSObject{
NSString *title;
}
@property (nonatomic, retain) NSString *title;
这里有两种标题的区别吗?
@interface MyObject: NSObject{
NSString *title;
}
@property (nonatomic, retain) NSString *title;
第一个是实例变量。
二是财产。
实例变量作为类声明(接口)的一部分在很大程度上已被弃用,但类内部使用的实例变量可以在扩展或@implementation 中声明。
属性声明了 API(setter/getter)和使用的内存管理模型。默认情况下,现代编译器会自动合成实例变量以支持属性。
上面的不是属性,而只是一个实例变量。我的意见在这里:
@interface MyObject : NSObject {
NSString *title; }
@property
,不需要显式地使用@synthesize
它,Xcode 将隐式地@synthesize title = _title;
在哪里
_title
是支持属性的实例变量self.title
。我认为这是一种很好的编码风格。