2012-06-27 64 views

回答

1

這是必需的,直到「現代落實運行時間「,其中ns在64位Mac應用程序和iOS上。其他使用「傳統運行時」的應用程序不能自動綜合實例變量。舊代碼通常包含伊娃報表。另外,Xcode中的一個可能的錯誤導致合成變量不會出現在調試器窗口中,因此包括顯式聲明可能對測試過程有幫助。

1

Jake的意見儘管如此,在Naming Properties and Data Types蘋果勸告:

  1. 你應該 「避免明確聲明公有實例變量」;和

  2. 你應該「用實線變量名稱加下劃線(_)」。

因此,你的例子就變成:

@interface MyClass : NSObject 
@property (nonatomic,strong) NSString *parent; 
@end 

在不需要伊娃明確聲明,並

@implementation MyClass 
@synthesize parent = _parent; 
// the rest of the implementation 
@end 

其中@synthesize聲明不僅將創建伊娃的你,但會用一個前導下劃線來命名它,以避免與聲明的屬性有任何不明確之處。

有關更多信息,請參閱Naming Properties and Data Types文檔。