удалить объект из NSArray - PullRequest
       4

удалить объект из NSArray

4 голосов
/ 15 сентября 2011

Как я могу удалить объект из перевернутого NSArray.

В настоящее время у меня есть NSMutableArray, затем я меняю его на

NSArray* reversedCalEvents = [[calEvents reverseObjectEnumerator] allObjects];

, теперь мне нужно удалить вэлемент из reversedCalEvents или calEvents и автоматически обновлять таблицу, в которой отображается массив в зависимости от условий.т.е.

if(someInt == someOtherInt){
    remove object at index 0
}

Как я могу это сделать?Я не могу заставить его работать.

Ответы [ 5 ]

12 голосов
/ 06 мая 2014

Вот более функциональный подход с использованием Кодирование значения ключа :

@implementation NSArray (Additions)

- (instancetype)arrayByRemovingObject:(id)object {
    return [self filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != %@", object]];
}

@end
12 голосов
/ 15 сентября 2011

Вам потребуется изменяемый массив для удаления объекта. Попробуйте создать reversedCalEvents с mutableCopy.

NSMutableArray *reversedCalEvents = [[calEvents reverseObjectEnumerator] allObjects] mutableCopy];

if (someInt == someOtherInt)
{
    [reversedCalEvents removeObject:object];
}
2 голосов
/ 15 сентября 2011

NSArray не редактируется, поэтому вы не можете его изменить.

Вы можете скопировать этот массив в NSMutableArray и удалить из него объекты.И, наконец, переназначьте значения NSMutableArray на ваш NSArray.

Отсюда вы получите лучшую идею ... NSArray + удалить элемент из массива

0 голосов
/ 16 апреля 2014

вы можете попробовать это: -

NSMutableArray* reversedCalEvents = [[[calEvents reverseObjectEnumerator] allObjects] mutableCopy];
            [reversedCalEvents removeLastObject];
0 голосов
/ 15 сентября 2011

Сначала вы должны прочитать сам класс NSMutableArray, чтобы ознакомиться с ним.

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

В-третьих, вы можете запустить обновление UITableView, отправив ему сообщение reloadData.

...