【问题标题】:NSUnknownKeyException while using SearchBar. this class is not key value coding-compliant for the key name使用 SearchBar 时出现 NSUnknownKeyException。此类与键名的键值编码不兼容
【发布时间】:2014-07-29 16:57:17
【问题描述】:

我查看了其他人发布的出现此类错误但不在UISearchBar 中的帖子,并且没有一个我可以将我的问题与我的问题联系起来:

简而言之,我正在使用 searchBars 并尝试构建基础知识。

我有 2 个数组

@interface ViewController ()
{
    NSMutableArray *dataList;
    NSArray *searchResults;
}

我使用以下内容填充了我的 dataList 数组:

dataList = [[NSMutableArray alloc] init];

[dataList addObject:@"This is row 1"];
[dataList addObject:@"That is row 2"];
....
[dataList addObject:@"More data in 20"];

我设置了我的searchDisplayController

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString*) searchString
{
    [self filterContentForSearchText:searchString
                           scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
                                  objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
    return YES;
}

我有一个过滤功能:

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {    
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];

    searchResults = [dataList filteredArrayUsingPredicate:resultPredicate];
}

在最后一个过滤器函数中,我在以searchResults = 开头的最后一行出现错误

2014-07-29 17:47:16.056 TestSearch[44628:60b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFConstantString 0x1000069c8> valueForUndefinedKey:]: this class is not key value coding-compliant for the key name.'
*** First throw call stack:
...
...
...

有什么想法吗?

我尝试使用NSArray 代替NSMutableArray,但我得到了同样的错误。

tableView 正在填满数据,所以没有问题。

【问题讨论】:

    标签: objective-c arrays nsarray searchbar nsunknownkeyexception


    【解决方案1】:

    name 不是NSString 对象的属性。使用self 作为谓词:

    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"self contains[c] %@", searchText];
    

    【讨论】:

    • 谢谢。我看了好几个小时都没看到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 2015-08-27
    • 2011-03-17
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多