Iphone:这两项任务的区别

时间:2011-01-11 23:36:09

标签: iphone properties

我的代码在我的.h:

@property (nonatomic, retain) NSArray *arrayData;

有什么区别:

self.arrayData = [[NSArray alloc]initWithObjects:@"date",@"trip",nil];

arrayData = [[NSArray alloc]initWithObjects:@"date",@"trip",nil];

我应该使用什么以及如何释放arrayData变量。

由于

1 个答案:

答案 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];