У меня есть этот простой метод, чтобы поместить первый элемент массива в конец и переместить все вниз на один индекс:
-(NSArray*)backUpNotes:(NSArray*)notes {
NSMutableArray* newNotes = [NSMutableArray arrayWithArray:notes];
Note* note = [newNotes objectAtIndex:0];
[newNotes removeObjectAtIndex:0];
[newNotes addObject:note];
return (NSArray*)newNotes;
}
массив примечаний содержит два объекта Note *, примечание A и примечание B.
после строки
Note* note = [newNotes objectAtIndex:0];
примечание содержит примечание А - как и ожидалось.
После линии
[newNotes removeObjectAtIndex:0];
newNotes ТОЛЬКО содержит примечание A --- Этого НЕ ожидается. Примечание A находится в индексе 0, и я могу видеть это из отладчика. Если я вместо этого сделаю
[newNotes removeObjectAtIndex:1];
newNotes по-прежнему содержит только примечание A - это ожидается, так как я удаляю примечание B в этом случае. Мне кажется, что я не могу на всю жизнь удалить Note A из этого массива. Я даже пытался сделать:
[newNotes removeObject:note];
и до сих пор есть новые заметки, содержащие ТОЛЬКО примечание А - определенно неожиданное.
Любое понимание было бы удивительным.