【问题标题】:-[__NSArrayI length]: crash when trying to filter with searchController [duplicate]-[__NSArrayI 长度]:尝试使用 searchController 过滤时崩溃 [重复]
【发布时间】: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


【解决方案1】:

你的 [_list valueForKey:@"name"] 返回一个 NSarray,它应该是一个 NSString 来计算它的长度..

【讨论】:

    【解决方案2】:

    请检查这种情况,如果它仍然崩溃,请告诉我!

    if([_list allkeys] contains @"name"])
    {
      NSString *tempStr = [_list valueForKey:@"name"];
    }
    if(tempStr)
    
    NSRange productNameRange = NSMakeRange(0, [tempStr length]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多