0

我使用带有神奇记录的核心数据,并尝试在表格视图中使用搜索栏过滤数据。

我写了两种方法来获取行数和单元格的名称:

    -(int) dammiNumeroCercati:(NSString *)searchBar
{
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"nome CONTAINS [cd] %@", searchBar];

    NSArray*arra = [Ricetta MR_findAllSortedBy:@"nome" ascending:YES withPredicate:predicate];


    return arra.count;
}
-(NSString*) dammiNomeRicettaCercata:(NSString *)searchBar mostrataNellaCella: (int) cella
{

   NSPredicate *predicate = [NSPredicate predicateWithFormat:@"nome CONTAINS [cd] %@", searchBar];

    NSArray *arra = [Ricetta MR_findAllSortedBy:@"nome" ascending:YES withPredicate:predicate];
    Ricetta*ctn = arra[cella];

    return [NSString stringWithFormat:@"%@", ctn.nome];
}

然后我在 numberOfRowsInSection: 和 cellForRowAtIndexPath: 内调用此方法: if 循环:

if (self.mySearchBar.isFirstResponder){

// the above methods

} else {
 // the normals methods to have all the data
}

有人知道我错在哪里或者我错过了什么吗?

4

1 回答 1

0

searchBar通常是一个UISearchBar,而不是一个字符串。

你应该searchBar.text在你的方法中使用和处理它。

此外,在表格视图的数据源方法中,您必须确保哪个表格视图导致回调,然后返回正确的计数/字符串。通常这是通过比较指向两个表(原始表视图和搜索结果表视图)的指针来检查的。

-(NSUInteger)tableView:(UITableView*)tableView 
       numberOfRowsInSection:(NSUInteger)section {

   if (tableView == _tableView) {
      // return the usual row count
   }
   return [self dammiNumeroCercati:_searchBar.text];
}
于 2013-07-01T11:10:36.273 回答