Ios 接口声明中@property和变量之间的差异

Ios 接口声明中@property和变量之间的差异,ios,objective-c,cocoa-touch,cocoa,Ios,Objective C,Cocoa Touch,Cocoa,在头文件的@interface{}声明中放入一个变量,与在该声明之后放入一个@property有什么区别 例如: 相对于 @interface GameCenterManager : NSObject @property (weak, nonatomic) GKInvite* pendingInvite @end 声明属性会根据括号内的条件为实例变量生成getter和setter。 定义括号中的变量只是声明它们为实例变量。 以下是一些提供更多信息的链接 不确定,但要生成getter和set

在头文件的
@interface{}
声明中放入一个变量,与在该声明之后放入一个
@property
有什么区别

例如:

相对于

@interface GameCenterManager : NSObject
@property (weak, nonatomic) GKInvite* pendingInvite
@end
声明属性会根据括号内的条件为实例变量生成getter和setter。

定义括号中的变量只是声明它们为实例变量。

以下是一些提供更多信息的链接


不确定,但要生成getter和setter,必须合成no?@PatricioIgnacioFariaValdivi不再。只要
@property
就足够了,它会自动创建一个带有下划线前缀的iVar。您可以使用接口中的
@property(非原子)NSString*foo
测试此功能,而无需合成,您可以在实现中获得\u foo。@PatricioIgnacioFariaValdivi您无需从ios6合成,因为它是由系统自动合成的。以前的版本需要你手动合成,真棒,很好知道,谢谢。但是,如果他使用的是和iOS<6,他必须合成:)@PatricioIgnacioFariaValdivi是的,没错!:)与此问题类似:
@interface GameCenterManager : NSObject
@property (weak, nonatomic) GKInvite* pendingInvite
@end