繁体   English   中英

iPhone:这两个作业之间的区别

[英]Iphone: Difference between these two assignment

我的.h中有以下代码:

@property (nonatomic, retain) NSArray *arrayData;

之间有什么区别?

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

和:

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

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

谢谢

区别在于使用self.arrayData = ...保留数组。 您应该使用self.arrayData = nil;释放它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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM