[英]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.