Проблемы с удалением NSStrings в NSArray - PullRequest
1 голос
/ 19 сентября 2011

В NSArray у меня есть 10 значений.Значения выглядят примерно так:

Hello
Hello2
My
My2
Name
Name2
Is
Is2
XcodeDev
XcodeDev2

И я хочу удалить каждую вторую NSString из NSArray, поэтому у меня остался массив, подобный следующему.Значения являются случайными, и к каждому второму не добавляются 2!Как я могу это сделать?

Hello
My
Name
Is
XcodeDev

1 Ответ

5 голосов
/ 20 сентября 2011

Во-первых, вам понадобится экземпляр NSMutableArray, потому что NSArray s являются неизменяемыми и, следовательно, вы не можете изменить его содержимое.

NSMutableArray *ary = [NSMutableArray arrayWithArray:anImmutableArray];

Затем вы можете создать набор индексов, который содержит все нечетные индексы:

NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc] init];
for (int i = 1; i < [ary count]; i=i+2) {
    [indexSet addIndex:i];
}

Наконец, просто вызовите метод removeObjectsAtIndexes: для массива.

[ary removeObjectsAtIndexes:indexSet];
...