2012-11-27 61 views
1

我有一個接口爲什麼不需要界定,而我用這陣是合成所需的iphone

 
@interface A 
{ 
    NSMutableArray *_myArray; 
} 

@property(nonatomic, retain)NSMutableArray *myArray; 

在我寫

 
@synthesize myArray = _myArray; 

執行情況和代碼的身體只存儲一些數組值這是這樣的...

 
-(void)updateArray:(NSArray*)p_NewValues 
{ 
    self.myArray = nil; 
    myArray = [NSMutableArray alloc]initwithArray:p_NewArray]; 
} 

但在代碼審查中不幸發現我不需要任何變量定義只有Synthesize是可以的,任何人都可以解釋爲什麼?

+0

即使這些不是必需的「NSMutableArray * _myArray;」和@synthesize myArray = _myArray; –

回答

3

documentation

的@synthesize指令還合成一個適當的實例變量 如果不是另有聲明。

3

隨着最新版本的Xcode中使用的現代Objective-C編譯器,您不需要顯式的伊娃,也不需要@synthesize了。您的代碼現在可以是:

@interface A 

@property (nonatomic, retain) NSMutableArray *myArray; 

@end 

@implementation A 

- (void)updateArray:(NSArray *)p_NewValues { 
    self.myArray = [NSMutableArray arrayWithArray:p_NewArray]; 
} 

@end 
相關問題