1

NSFetchedResultsController用来存储类型的自定义对象:XMPPUserCoreDataStorageObject. 我需要在我的 fetchedResultsController 中搜索字段displayNameofXMPPUserCoreDataStorageObject和搜索文本之间的匹配项。我通过以下方式访问该字段:

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

接着:

 user.displayName;

其中i是 中的对象数NSFetchedResultsController

如何使用格式制作谓词来比较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];
}
4

1 回答 1

1

试试这个解决方案。这是如何通过Core Data获取结果进行搜索的复合谓词的示例。

于 2013-09-24T08:35:07.100 回答