在搜索显示控制器中分组

时间:2011-12-07 05:27:47

标签: iphone objective-c core-data uisearchbar uisearchdisplaycontroller

在我的核心数据应用程序中,我有一个实体Person,其名称为属性。 我使用以下谓词逻辑来搜索名称。 当我们用单词搜索时,它会显示名称。 好吧,但我想要两组搜索名称

  1. 包含名称中任意位置的Word

  2. 名称以单词开头。

  3. 我想要的两个小组。怎么样?

    NSString *searchfilter = [NSString stringWithFormat:@"*%@*",savedSearchTerm_];
    NSPredicate *filter = [NSPredicate predicateWithFormat:@"word like[c] %@", searchfilter];
    [fetchRequest setPredicate:filter];
    

2 个答案:

答案 0 :(得分:1)

您的示例应适用于#1。

这个词就在名字的任何地方:

NSString *searchfilter = [NSString stringWithFormat:@"*%@*",savedSearchTerm_];
NSPredicate *filter = [NSPredicate predicateWithFormat:@"word like[c] %@", searchfilter];
[fetchRequest setPredicate:filter];

名称以单词:

开头
NSString *searchfilter = [NSString stringWithFormat:@"%@*",savedSearchTerm_];
NSPredicate *filter = [NSPredicate predicateWithFormat:@"word like[c] %@", searchfilter];
[fetchRequest setPredicate:filter];

答案 1 :(得分:1)

我认为你有两个选择:

1)- (id)initWithFetchRequest:(NSFetchRequest *)fetchRequest managedObjectContext:(NSManagedObjectContext *)context sectionNameKeyPath:(NSString *)sectionNameKeyPath cacheName:(NSString *)name按照您要分组的内容sectionNameKeyPath:传递

2)选择- (NSArray *)executeFetchRequest:(NSFetchRequest *)request error:(NSError **)error

后的小组