两种编码风格的区别是什么?

时间:2013-03-26 02:23:24

标签: ios objective-c

这两种标题有什么不同吗?

@interface MyObject: NSObject{
    NSString *title;
}


@property (nonatomic, retain) NSString *title;

2 个答案:

答案 0 :(得分:10)

第一个是实例变量。

第二个是财产。

实例变量在很大程度上被弃用作为类声明(接口)的一部分,但是内部使用的实例变量可以在扩展或@implementation中声明。

属性声明API(setter / getter)和使用的内存管理模型。默认情况下,现代编译器会自动合成实例变量以支持属性。

答案 1 :(得分:1)

上面的不是属性,而只是一个实例变量。 我的意见在这里:

  1. 使用最新的Xcode。
  2. 不要编写实例变量:@interface MyObject : NSObject { NSString *title; }
  3. 仅使用@property,无需明确@synthesize, Xcode将隐含@synthesize title = _title;所在的位置 _title是支持属性self.title
  4. 的实例变量

    我认为这是一种很好的编码风格。