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