开发者

Initializing NSMutableDictionary to create a filter

开发者 https://www.devze.com 2023-03-20 15:17 出处:网络
This is a continuation question I had from a post yesterday: Initializing NSMutableDictionary (It\'s probably a stupid question, but I don\'t see what I\'m doing wrong.)

This is a continuation question I had from a post yesterday: Initializing NSMutableDictionary

(It's probably a stupid question, but I don't see what I'm doing wrong.)

I liked the idea of just having "All" listed in my TableView that pops up when the filter button is pressed in order to indicate no filter applied. I get my data from my model class sorted correctly into an NSMutableArray like so:

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

But I want to add the "All" option to the CategoriesArray to show in the UITableView. When I try to run it,开发者_StackOverflow社区 it crashes at that line because of

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'

Any help would be appreciated. Thanks!


sortedArrayUsingSelector: returns an immutable array which is why you can't add to it. Do this to get a mutable copy.

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


It seems CategoriesArray is actually a NSArray instance. From Apple's doc :

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

精彩评论

暂无评论...
验证码 换一张
取 消