ios/objective-c:与自定义单元格相结合的搜索显示控制器



我正在使用一个搜索栏和搜索显示控制器,该控制器利用NSPredite来搜索根据核心数据创建的表视图。以下代码适用于我的大多数VC。然而,对于一个我使用自定义单元格的单元格,无论何时搜索,我都不会得到任何结果。

以下是cellforrowatindexpath中用于调整搜索数据源的代码:

 Items *item;
    if (tableView == self.searchDisplayController.searchResultsTableView) {
        item = [searchResults objectAtIndex:indexPath.row];
    } else {
        item
        = [self.fetchedResultsController objectAtIndexPath:indexPath];
    }

由于这是VC使用自定义单元格的唯一情况,我想知道这是否就是没有结果返回的原因。

这是告诉cellforrowatindexpath使用自定义单元格的行:

customCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
cell.item = item;

最后,单元格中的值是这样设置的:

-(void) setItem:(Items *)item{ //open 1
    _item = item;
    self.nameLabel.text = item.name;
}

自定义单元格是否会导致搜索中没有出现项目,或者我应该在其他地方查找错误?

注意:搜索时返回的项目数始终为零。

(IBAction)onbtnSearchTapped:(id)sender {
@try{
    self.strSearchName = self.txtSearchName.text;

    if ([self.strSearchName isEqualToString:@""] &&
        [self.strSearchVehicleType isEqualToString:@""] ) {
        self.isSearch = NO;
    }
    else {
        self.isSearch = YES;
        NSString* filter = @"%K CONTAINS[cd] %@ || %K CONTAINS[cd] %@";
        NSMutableArray *args=[[NSMutableArray alloc]initWithObjects:@"sFirstName",self.strSearchName,nil];
        NSArray *arrSearch=[NSArray arrayWithArray:args];
        self.arySearchList =[NSMutableArray arrayWithArray:[aryList filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:filter argumentArray:arrSearch]]];
        DLog(@"%@",self.arySearchList);
        self.strSearchName = @"";
    }
    [self.tableView reloadData];
} @catch (NSException *exception) {
    NSLog(@"Exception At: %s %d %s %s %@", __FILE__, __LINE__, __PRETTY_FUNCTION__, __FUNCTION__,exception);
}
@finally {
}}

并且在段中的行数中放入

 (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (self.isSearch == YES) {
    return [self.arySearchClientList count];        
} else {
    return [aryClientList count];        
}}

最新更新