我正在使用 Core Data 将以前的搜索保存在 SearchBar 中。我的实体很简单,它只有以下属性:
previousSearch (NSString)
当用户在搜索栏中键入时,我想在数据库中搜索我以前的搜索。不过,我一直得到 0 个结果。
这是从 Core Data 中检索数据的代码。
- (void)filterContentForSearchText:(NSString *)searchText {
[self.filteredLastSearches removeAllObjects];
NSEntityDescription *search = [NSEntityDescription entityForName:@"Search" inManagedObjectContext:_managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:search];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"previousSearch=[c]%@", searchText];
[fetchRequest setPredicate:predicate];
NSError *error = nil;
NSArray *fetchedObjects = [_managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (error) {
NSLog(@"Error filtering search: %@", [error description]);
}
_filteredLastSearches = [NSMutableArray arrayWithArray:fetchedObjects];
}
fetchedObjects 总是空的,我不知道为什么。我可以在数据库中看到 db 实际上有 ZPREVIOUSSEARCH 以及我在搜索时尝试显示的几个值,但它总是空的。有什么我想念的吗?提前致谢。