Я не могу удалить объект из NSMutableArray - PullRequest
1 голос
/ 06 февраля 2012

Я не понимаю, почему объект не удаляется из NSMutableArray. Это код:

[self willChangeValueForKey:@"candidatesProxy"];
[candidatesProxy removeObject:[[pseudonymsArrayController selectedObjects] lastObject]];
[self didChangeValueForKey:@"candidatesProxy"];

Я проверил, а lastObjet в псевдонимах - это тот же объект кандидатов Proxy. Но это не удаляется.

Это потому, что, возможно, объект был скопирован в другую область памяти, поэтому у меня фактически есть 2 объекта, а не один?

Спасибо

Ответы [ 2 ]

3 голосов
/ 06 февраля 2012

Когда вы используете метод removeObject:, индекс объекта сначала определяется путем отправки indexOfObject: в этот массив, а затем объект с этим индексом удаляется.

Чтобы это работало, убедитесь, что ваш пользовательский класс объектов переопределен -(BOOL)isEqual:.

Либо удалите объект, используя индекс, но сначала вам нужно его определить.

1 голос
/ 06 февраля 2012

Вы не можете удалить объекты из NSArray, вы можете удалить его только из NSMutableArray

РЕДАКТИРОВАТЬ

Просто попробуйте следующие операторы перед willChangeValueForKey:

NSLog(@"Array : %@", candidatesProxy);
NSLog(@"Element : %@",[[pseudonymsArrayController selectedObjects] lastObject]);

и проверьте, присутствует ли элемент lastObject в массиве.

...