我正在开发一个iPhone项目,该项目中我想从NSMutableArray中检索一个对象,从数组中删除该对象,然后再使用它。代码看起来像这样:

NSMutableArray * array;
// fill the array
NSObject * obj = [array lastObject];
[array removeLastObject];
// do something with obj (in the same function)

数组是唯一在访问的对象上保留内容的实体。这样安全吗?我认为这只有在lastObject自动释放对象的情况下才有效,这是我无法确定的。

最佳答案

为什么不打电话

[array removeLastObject]

在您的功能结束时?这样就少了一个释放/保留时间。这可能会使您的代码更易读/更困惑。

为了记录Apple documentation:


id anObject = [[anArray objectAtIndex:0] retain];
[anArray removeObjectAtIndex:0];
[anObject someMessage];

10-08 06:05