使用RestKit进行CoreData搜索

时间:2012-08-06 15:22:53

标签: objective-c ios search core-data restkit

我正在开发一个应用程序,我有两个模型,在视图控制器中我想进行搜索并从两个模型中找到与搜索关键字匹配的实例并将它们列在tableview中。我还使用RestKit将对象存储在核心数据中。我后来还想在我第一次进行本地搜索后用服务器结果更新搜索结果。

我当前 - 可能是天真的 - 尝试看起来像这样:

- (void)search
{

    if (self.searchField.text !=nil) {
        NSPredicate *predicate =[NSPredicate predicateWithFormat:@"post contains[cd] %@", self.searchField.text];
        self.posts = [[Post findAllWithPredicate:predicate] mutableCopy];

        // reload the table view
        [self.tableView reloadData];

    }    

    [self hideKeyboard];

}

这会导致错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (post CONTAINS[cd] "t")'

tableView的cellForRowAtIndexPath委托方法如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"Cell";

    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    Post *post = [self.posts objectAtIndex:indexPath.row];
    cell.titleLabel.text = post.title;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell;
}

关于这样的搜索应该如何看待的任何想法都会很棒!

1 个答案:

答案 0 :(得分:2)

您可能希望查看RKGitHub示例项目,该项目展示了RKTableController类的功能。

至于错误,我认为这与你的问题无关。