簡體   English   中英

NSMutableArray,添加/刪除對象?

[英]NSMutableArray, Adding / Removing objects?

這是將對象彈出數組前端的正確方法嗎? 我只是好奇,因為我在想可能有一個NSMutableArray方法可以返回保留的對象。 只是好奇我是否正確?

// PUTTING OBJECTS IN
NSMutableArray *fgStore = [[NSMutableArray alloc] init];
for(int counter=1; counter<=5; counter++) {
    NSString *dataValue = [[NSString alloc] initWithFormat:@"DATA%d", counter];
    [fgStore addObject:dataValue];
    [dataValue release];
}

// TAKING OBJECTS OUT
NSString *saveMe = [[fgStore objectAtIndex:0] retain];
[fgStore removeObjectAtIndex:0];    
NSLog(@"SAVE: %@", saveMe);
...
...
[fgStore release];
[saveMe release];

加里

這正是我要做的方式,我認為沒有別的。 通過返回保留的對象,您將破壞Cocoa內存管理的主要規則之一:大多數時候,您僅擁有由init…方法返回的對象,而必須保留其余部分。

該代碼看起來不錯。 您可能要記住的唯一事情是,可以使用自動釋放來避免在完成操作后顯式釋放。 例如:

for(int counter=1; counter<=5; counter++) {
    NSString *dataValue = [[[NSString alloc]
                             initWithFormat:@"DATA%d", counter] autorelease];
    [fgStore addObject:dataValue];
}

我不相信有任何NSMutableArray方法返回保留的對象。 請記住,返回保留值的方法的名稱以alloc,new或copy開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM