我有一個@property (nonatomic,copy) NSMutableArray* children;
,我正在向這個數組添加/刪除項目。NSMutableArray removeObject:引發錯誤
這裏的驚喜:
- (void)addChildDocument:(PPDocument *)doc {
[_children addObject:doc];
}
- (void)removeChildDocument:(PPDocument*)doc {
[_children removeObject:doc];
}
第一個工作正常。第二個不是。
-[__NSArrayI removeObject:]: unrecognized selector sent to instance
能否請您給我解釋不清楚是怎麼回事,以及如何children
陣列突然顯示爲不變?
UPDATE:
的問題已得到解決。然而,儘管可能會引發你的奇怪,但大多數人提到的copy
與這個問題無關。奇怪的是,它必須處理每個PPDocument
的parent
屬性未被正確設置爲weak
。一旦我做到了(並且保持原樣),一切正常 - 正如預期的那樣。無論如何,NSMutableArray
仍然是可變的。
@Alladinian沒有,它沒有工作。而且,順便說一句,你所說的看起來並不真實。如果'children'作爲不可變對象返回,爲什麼addChildDocument'每次都工作? – 2014-09-25 14:39:55
你可以分享陣列的初始化/分配嗎?另外作爲副本'copy'總是會讓你成爲一個不可變的實例,也許'strong'是更合適的選擇。 – Alladinian 2014-09-25 14:40:23
@ Dr.Kameleon是的,我意識到你直接訪問伊娃並刪除了第一條評論(除非你在某處使用'self.children',並重新分配)。 – Alladinian 2014-09-25 14:41:03