Проверьте, присутствуют ли данные в индексе в NSMutableArray

У меня есть a NSMutableArray, Я хочу вставить данные в нем, проблема является первой, я хочу проверить, существует ли индекс, где я вставляю данные, или нет. Как сделать это? Я пробую что-то как этот ни кроме чего, работает:

if ([[eventArray objectAtIndex:j] count] == 0)

или

if (![eventArray objectAtIndex:j])
7
задан Gilles 'SO- stop being evil' 21 August 2012 в 14:43
поделиться

2 ответа

if (j < [eventArray count])
{
     //Insert
}
11
ответ дан 6 December 2019 в 15:21
поделиться

NSArray и NSMutableArray не являются разреженными массивами. Таким образом, нет понятия «существует по индексу», только «имеет ли массив N элементов или более».

Для NSMutableArray общая сумма изменяемых операций составляет:

- (void)addObject:(id)anObject;
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;
- (void)removeLastObject;
- (void)removeObjectAtIndex:(NSUInteger)index;
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

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

3
ответ дан 6 December 2019 в 15:21
поделиться