2011-07-13 4 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 

しかし、私はのUITableViewで表示するCategoriesArrayに「すべて」オプションを追加したいです。私はそれを実行しようとすると、その行でクラッシュするため、

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; 
関連する問題