2011-07-13 50 views
1

這是一個延續的問題,我昨天從一個帖子有:Initializing NSMutableDictionary初始化的NSMutableDictionary創建一個過濾器

(這可能是一個愚蠢的問題,但我不明白我在做什麼錯。)

我喜歡在按下過濾器按鈕時彈出一個TableView中列出的「All」的想法,以表示沒有應用過濾器。我從正確排序到一個NSMutableArray像這樣我的模型類讓我的數據:

NSArray *anArray = [dmgr.CategoryDictionary allKeys]; 
    self.CategoriesArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 
    [self.CategoriesArray insertObject:@"All" atIndex:0]; // line causes crash 

但我想補充的「全部」選項來CategoriesArray在UITableView中顯示。當我嘗試運行它時,它在該線路上崩潰,因爲

NSArrayI insertObject:atIndex:]: unrecognized selector sent to instance 0x59baba0 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI insertObject:atIndex:]: unrecognized selector sent to instance 0x59baba0' 

任何幫助,將不勝感激。謝謝!

回答

2

sortedArrayUsingSelector:返回一個不可變的數組這就是爲什麼你不能給它添加。這樣做是爲了得到一個可變的副本。

self.CategoriesArray = [NSMutableArray arrayWithArray:[anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]]; 
0

看來CategoriesArray實際上是一個NSArray實例。從Apple's doc

-(NSArray *)sortedArrayUsingSelector:(SEL)comparator;