@synthesize propertyName = _propertyName的属性是否需要ivar;

时间:2012-01-10 17:50:25

标签: objective-c properties

在以下示例中,是否需要行NSObject *_propertyName;

·H

@interface  ClassName
{
    NSObject *_propertyName;
}

@property (nonatomic, retain) NSObject *propertyName;

@end

的.m

@implementation  ClassName

@synthesize propertyName = _propertyName;

@end

我发现如果我排除NSObject *_propertyName;但保留@synthesize propertyName = _propertyName;一切正常。这是我正在谈论的一个例子:

·H

@interface  ClassName

@property (nonatomic, retain) NSObject *propertyName;

@end

的.m

@implementation  ClassName

@synthesize propertyName = _propertyName;

@end

我已经测试并看到该物业仍然有效。我几乎总是看到包含行NSObject *_propertyName;的代码。这里有什么我想念的吗?

1 个答案:

答案 0 :(得分:3)

你没有遗漏任何东西。从较新的运行时(较新的iOS模拟器,x86_64和ARM)开始,您不再需要手动声明ivar。在i386和PPC之前,您必须手动声明您的ivars。