NSMutableArray - 数组弹出等效项

时间:2012-06-11 19:19:21

标签: cocoa nsmutablearray foundation

如果我想从我的NSMutableArray中弹出最后一项,那么这是最合适的方法吗?

id theObject = [myMutableArray objectAtIndex:myMutableArray.count-1];
[myMutableArray removeLastObject];

我确信来自SOF的人有更好的方法。

3 个答案:

答案 0 :(得分:12)

保留,删除,使用,释放。

id theObject = [[myMutableArray lastObject] retain];
[myMutableArray removeLastObject];
//use theObject....
[theObject release];

答案 1 :(得分:6)

NSMutableArray没有弹出等价物,但我想你可以轻松地为它添加一个类别以进行弹出。也许是这样的事情:

<强>的NSMutableArray + Queue.h

@interface NSMutableArray (Queue)
-(id)pop;
@end

<强>的NSMutableArray + Queue.m

#import "NSMutableArray+Queue.h"

@implementation NSMutableArray (Queue)
-(id)pop{
    id obj = [[[self lastObject] retain] autorelease];
    [self removeLastObject];
    return obj;
}
@end

然后导入它并像这样使用它:

#import "NSMutableArray+Queue.h"
...
id lastOne = [myArray pop];

答案 2 :(得分:1)

您可以使用lastObject获取数组中的最后一个对象。

这样可以省去一些按键。

如果您希望能够使用一行代码调用它,则可以将其全部包含在NSMutableArray上的函数或类别中。