3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
另一種變化。因此,您可以獲得可讀性和良好的性能:
NSMutableIndexSet *discardedItems = [NSMutableIndexSet indexSet];
SomeObjectClass *item;
NSUInteger index = 0;
for (item in originalArrayOfItems) {
if ([item shouldBeDiscarded])
[discardedItems addIndex:index];
index++;
}
[originalArrayOfItems removeObjectsAtIndexes:discardedItems];

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
這是一個(gè)非常簡(jiǎn)單的問題。您只是向后迭代:
for (NSInteger i = array.count - 1; i >= 0; i--) {
ElementType* element = array[i];
if ([element shouldBeRemoved]) {
[array removeObjectAtIndex:i];
}
}
這是非常常見的模式。
- 3 回答
- 0 關(guān)注
- 787 瀏覽
添加回答
舉報(bào)