所以我有以下代碼:應用程序崩潰的搜索(過濾)的NSDictionary的
我.h文件中
@interface TableViewController : UITableViewController <UISearchBarDelegate,UITableViewDataSource,UITableViewDelegate>
{
IBOutlet UITableView *myTableView;
IBOutlet UISearchBar *mysearchBar;
NSMutableArray *filteredList;
BOOL isFiltered;
}
@property NSDictionary *iconSet;
@end
與.m文件,其中出問題的部分。
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if(searchText.length == 0)
{
//bool in .h file
isFiltered = NO;
}else
{
isFiltered = YES;
filteredList = [[NSMutableArray alloc] init];
//self.iconSet is an NSDictionary (coming from a segue) formed like -(NSDictionary *) symbols { return self.symbols = @{@"":@"Heart With Arrow",@"❤️":@"Heavy Black Heart"}
for (NSDictionary *theDictionary in self.iconSet) {
for (NSString *key in theDictionary) {
NSString *value = [theDictionary objectForKey:key];
NSRange stringRange = [value rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (stringRange.location != NSNotFound) {
[filteredList addObject:theDictionary];
break;
}
}
}
}
[myTableView reloadData];
}
Xcode不是在我的任何錯誤或警告叫聲,但是當我按在我的搜索欄,應用程序崩潰字母或圖標,它提供了以下消息:
** *終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因是:「 - [__ NSCFConstantString countByEnumeratingWithState:對象:伯爵:]:無法識別的選擇發送到實例0x1000f94d0」
我試圖尋找它的計算器,但避風港沒有發現我正在尋找的答案。我希望這裏有人能幫我找到我的(可能是愚蠢的)錯誤。
是的,我是這麼認爲的,字典是建立與@ {@ 「」:@ 「心箭」},其中兩個項目是NSStrings – SoundShock
我不認爲你需要通過self.iconSet中的每個字典循環,因爲它是一本字典本身不是一個字典數組。 – JDx