2012-02-06 159 views
1

我不明白爲什麼不從NSMutableArray中刪除對象。這是代碼:我無法從NSMutableArray中刪除對象

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

我檢查過,並且在化名中的lastObjet是candidatesProxy的同一個對象。但它不會被刪除。

是不是因爲對象被複制到不同的內存位置,所以我實際上有2個對象,而不是一個?

感謝

+0

你已經提到過,在化名中的lastObjet是candidateProxy的同一個對象。如果lastObject是candidatesProxy的元素(而不是candidatesProxy本身),它將被刪除。 – Ilanchezhian 2012-02-06 08:39:02

回答

1

不能從NSArray刪除對象,你只能從NSMutableArray

編輯刪除

willChangeValueForKey:

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

和檢查剛剛嘗試下面的語句是否爲lastObject ele陣列中存在。

+0

對不起,這是一個NSMutableArray ... – aneuryzm 2012-02-06 11:10:24

3

當您使用removeObject:方法時,首先通過將indexOfObject:發送到該數組來確定對象的索引,然後刪除該索引處的對象。

爲了使其工作,請確保您的自定義對象類覆蓋-(BOOL)isEqual:

或者,使用索引刪除對象,但首先需要確定它。