2012-06-21 46 views
-1

可能重复:
@property @synthesize关于@property和@synthesize

嗨,我在这么多的应用程序创建发现我们有@property后宣布@synthsize还,但我想知道

NSArray *_failedBankInfos; 

@property (nonatomic, retain) NSArray *failedBankInfos; 
@synthesize failedBankInfos = _failedBankInfos; 

@property (nonatomic, retain) NSArray *_failedBankInfos; 
@synthesize _failedBankInfos; 

任何人都可以解释这一点。

+2

请做搜索有很多关于这个话题的问题。 http://stackoverflow.com/questions/2032826/property-synthesize – iNoob

回答

3

@synthesize将映射与伊娃即宣告将创建getter和setter方法,而无需开发人员明确实现存取方法和其中的内存管理特性(如每里面@property如参数:retain, copy )。 所以,当我们使用*_iVar(这应该是一个私人伊娃按照命名约定),我们希望有存取方法看起来像那些没有“_”,例如:[aClass getIVar]而不是[aClass get_iVar]我们映射_iVar@synthesize iVar=_iVar的财产@property(retain/copy/assign,atomic/nonatomic) NSObject *iVar;

PS:也可参考自动参考iOS中> = 5.0计数在Ray's

+0

嗨ishak感谢您的答复。这里可以请解释什么时候我们必须使用_和什么时候不需要使用它。 – GNJ

+0

嘿,你好,欢迎光临! 它只是一个命名约定,表明iVar应该是私有的,即对其他类不可见(在OOP中称为封装),所以如果我们在Class的.m文件中声明相应的@property而不是.h文件,以便类本身可以使用该属性,而其他类不能。 –

+0

好,谢谢很多ishak – GNJ

相关问题