【发布时间】:2015-03-19 12:11:33
【问题描述】:
我正在尝试使用 searchController 进行过滤。我在以下代码中的 NSRange productNameRange = NSMakeRange(0, [[_list valueForKey:@"name"] length]); 行遇到了崩溃 (-[__NSArrayI length]: unrecognized selector sent to instance):
-(void)updateFilteredContent:(NSString*)searchText {
// Update the filtered array based on the search text and scope.
[self.searchResults removeAllObjects];
// Filter the array using NSPredicate
NSLog(@"_categories are %@",_categories);
for (NSDictionary *object in _categories) {
NSUInteger searchOptions = NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch;
NSRange productNameRange = NSMakeRange(0, [[_list valueForKey:@"name"] length]);
NSRange foundRange = [[_list valueForKey:@"name"] rangeOfString:searchText options:searchOptions range:productNameRange];
if (foundRange.length > 0) {
[self.searchResults addObject:object];
}
}
}
我尝试在 if ([[object valueForKey:@"name"] length] >0){ 这样的长度上添加 if 语句,但它仍然崩溃。
_list 的日志示例如下:
_list names are (
"Honda",
"Ford",
Toyota,
【问题讨论】:
-
你认为
[_list valueForKey:@"name"]的回报是什么? -
通过returns,你是指类的类型吗?
-
valueForKey: 返回数组... [[_list valueForKey:@"name"][0] length ];试试这样..
-
if([_list valueForKey:@"name"].count == 0) 返回;将此行放在上述行之前
-
这是 TamilKing,在末尾添加 [0] 修复了它。谢谢!
标签: ios nsarray uisearchdisplaycontroller searchbar