我有一个界面
@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 :(得分:3)
@synthesize指令还合成了一个合适的实例 变量,如果没有另外声明。
答案 1 :(得分:3)
使用最新版本的Xcode中使用的现代Objective-C编译器,您不需要显式的ivar,甚至不再需要@synthesize
。您的代码现在可以是:
@interface A
@property (nonatomic, retain) NSMutableArray *myArray;
@end
@implementation A
- (void)updateArray:(NSArray *)p_NewValues {
self.myArray = [NSMutableArray arrayWithArray:p_NewArray];
}
@end