繁体   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