我知道@property在Objective-C中生成getter和setter方法。但是我看到有些类在声明属性时使用了@property,而有时只使用@property而没有属性,它们似乎都能正常工作。这两种方式有什么区别呢?
我知道@property在Objective-C中生成getter和setter方法。但是我看到有些类在声明属性时使用了@property,而有时只使用@property而没有属性,它们似乎都能正常工作。这两种方式有什么区别呢?
@interface Foo : NSObject
{
Bar* anAttribute; // <<=== this is an instance variable
}
@property (retain) Bar* anAttribute;
@end
@synthesize
来声明属性,你可以省略实例变量的声明,编译器会自动为你添加。无论你是否显式声明了实例变量都是个人偏好问题。
@synthesize
,编译器会自动为你添加。copy
不足以增加保留计数吗? - samson