簡體   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