我不明白为什么没有从NSMutableArray中删除对象。这是代码:
[self willChangeValueForKey:@"candidatesProxy"];
[candidatesProxy removeObject:[[pseudonymsArrayController selectedObjects] lastObject]];
[self didChangeValueForKey:@"candidatesProxy"];
我已经检查过,假名中的lastObjet与candidateProxy的对象相同。但它没有被删除。
是因为对象可能被复制到不同的内存位置,所以我实际上有2个对象而不是一个?
由于
答案 0 :(得分:3)
当您使用removeObject:
方法时,首先通过向该数组发送indexOfObject:
来确定对象的索引,然后删除该索引处的对象。
为了使其正常工作,请确保您的自定义对象类覆盖-(BOOL)isEqual:
。
或者,使用索引删除对象,但首先需要确定它。
答案 1 :(得分:1)
您无法从NSArray
删除对象,只能从NSMutableArray
修改强>
在willChangeValueForKey:
NSLog(@"Array : %@", candidatesProxy);
NSLog(@"Element : %@",[[pseudonymsArrayController selectedObjects] lastObject]);
并检查数组中是否存在lastObject元素。