NSMutableArray - 数组弹出等效项

Jac*_*nkr 4 cocoa foundation nsmutablearray

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

id theObject = [myMutableArray objectAtIndex:myMutableArray.count-1];
[myMutableArray removeLastObject];
Run Code Online (Sandbox Code Playgroud)

我相信来自SOF的人有更好的方法.

Fir*_*ula 12

保留它,删除它,使用它,释放它.

id theObject = [[myMutableArray lastObject] retain];
[myMutableArray removeLastObject];
//use theObject....
[theObject release];
Run Code Online (Sandbox Code Playgroud)


All*_*ian 6

没有pop等价物,NSMutableArray但我想你可以很容易地为它添加一个类别用于弹出.也许这样的东西:

NSMutableArray里+ Queue.h

@interface NSMutableArray (Queue)
-(id)pop;
@end
Run Code Online (Sandbox Code Playgroud)

NSMutableArray里+ Queue.m

#import "NSMutableArray+Queue.h"

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

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

#import "NSMutableArray+Queue.h"
...
id lastOne = [myArray pop];
Run Code Online (Sandbox Code Playgroud)