我的代码在我的.h:
@property (nonatomic, retain) NSArray *arrayData;
有什么区别:
self.arrayData = [[NSArray alloc]initWithObjects:@"date",@"trip",nil];
和
arrayData = [[NSArray alloc]initWithObjects:@"date",@"trip",nil];
我应该使用什么以及如何释放arrayData变量。
由于
答案 0 :(得分:1)
不同之处在于使用self.arrayData = ...
保留了数组。您应该使用self.arrayData = nil;
发布它。
你的代码 这里的代码不起作用,因为仅init
不分配数组。你可以用
self.arrayData = [NSArray arrayWithObjects:@"date",@"trip",nil];
分配并初始化数组。
ps arrayWithObjects
返回已分配且已自动释放的对象。这意味着如果你不保留它,对象就会消失。因此,请使用self.arrayData = ...
来执行此操作。
与alloc / init / autorelease等效的内容如下:
self.arrayData = [[[NSArray alloc] initWithObjects:....,nil] autorelease];