reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object

reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object

2011-01-25 10:46:31.992 086Sections[651:307] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object'


看reason:後面的異常說明:意思是我把一個可變量對應的方法讓一個不可變量來調用

mutating method(可變量對應的方法):是那些在創建後可以被更改的變量所擁有的method,比如NSMutableArray,NSMutableDictionary 等

immutable object(不可改變的變量):就是那些被創建後不能被改變的變量:比如 NSArray NSDictionary等

我的Exception被報出來是因爲我有一行錯誤代碼

[array removeObjectInArray removeArray];

這裏,我的array是從一個不可改變的變量類型爲NSDictionary得到的,

代碼爲:NSMutableArray *array = [names valueForKey myKey];

所以,array這裏也是一個不可改變量(即使我聲明用的是NSMutableArray),但顯然removeObjectInArray是一個改變變量的操作,所以這是不允許的。

我說的比較羅嗦~~

有不正確的還望指正。

objective-c和iphone學習方面,中文資料還是比較少的,嗯,我學一點,就攢一點,希望對同樣英文不是很好的朋友有所幫助。

真後悔大學三年沒有好好學英語啊,六級隨隨便便就過了,所以就一直懈怠了,學iphone開發就開始越發的後悔英文功底...5555555



萬一有轉載的:http://hi.baidu.com/delphi9527/creat/blog/

另外附上解決方法



NSMutableArray *mutaArray = [[NSMutableArray alloc] init];

[mutaArray addObjectsFromArray:saveArray];

self.saveArray = mutaArray



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章