在NSFetchedResultsController中搜索有问题

时间:2013-09-19 08:08:05

标签: objective-c search nspredicate xmppframework nsfetchedresultscontroller

我正在使用NSFetchedResultsController来存储类型为XMPPUserCoreDataStorageObject的自定义对象。我需要在fetchedResultsController中搜索displayName的字段XMPPUserCoreDataStorageObject与搜索文本之间的匹配项。 我可以通过以下方式访问此字段:

XMPPUserCoreDataStorageObject *user = [[self fetchedResultsController] fetchedObjects] objectAtIndex:i];

然后:

 user.displayName;

其中iNSFetchedResultsController中对象的数量。

如何使用格式生成谓词以比较user.displayName;searchText

我的搜索方法是:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{

if ([searchText length] == 0) {
    fetchedResultsController = nil;
}
else {
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"XXX contains[cd] %@", searchText]; 
    [[fetchedResultsController fetchRequest] setPredicate:predicate];
    [[fetchedResultsController fetchRequest] setFetchLimit:50];
}

NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}

[mainTableView reloadData];
}

1 个答案:

答案 0 :(得分:1)

尝试this解决方案。这是如何通过Core Data获取结果为搜索创建复合谓词的示例。