Ios -[\uu NSArrayI length]:尝试使用searchController进行筛选时崩溃

Ios -[\uu NSArrayI length]:尝试使用searchController进行筛选时崩溃,ios,nsarray,uisearchdisplaycontroller,searchbar,Ios,Nsarray,Uisearchdisplaycontroller,Searchbar,我正在尝试使用searchController进行筛选。我在第NSRange-productNameRange=NSMakeRange(0,[[u-list-valueForKey:@“name”]length]行收到一个崩溃(-[[u-NSArrayI-length]:发送到实例的无法识别的选择器)在以下代码中: -(void)updateFilteredContent:(NSString*)searchText { // Update the filtered array based

我正在尝试使用searchController进行筛选。我在第
NSRange-productNameRange=NSMakeRange(0,[[u-list-valueForKey:@“name”]length]行收到一个崩溃(
-[[u-NSArrayI-length]:发送到实例的无法识别的选择器)在以下代码中:

-(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语句,比如
if([[objectvalueforkey:@“name”]length]>0{
,但它仍然崩溃

日志列表的一个示例是:

_list names are (
    "Honda",
    "Ford",
    Toyota,

您的[\u list valueForKey:@“name”]返回一个NSarray,它应该是一个NSString来计算它的长度。

请检查此条件,并告诉我它是否仍然崩溃

if([_list allkeys] contains @"name"])
{
  NSString *tempStr = [_list valueForKey:@"name"];
}
if(tempStr)

NSRange productNameRange = NSMakeRange(0, [tempStr length]);

你认为返回值是什么?返回值是指类的类型吗?返回数组…[[u-list-valueForKey:@“name”];像这样试试。如果([[u-list-valueForKey:@“name”].count==0)返回值;把这一行放在上面那一行之前,在最后添加[0]来修复它。谢谢!