在CoreData中筛选?

问题描述:

我写的一个方法如下面在CoreData中筛选?

-(NSArray*)getClubDetailedDeals:(NSString *)clubID{ 

    NSError *error; 
    NSManagedObjectContext *context = [self managedObjectContext]; 

    NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init]; 

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"ClubDetailsDeals" 
               inManagedObjectContext:context]; 

    [fetchRequest setEntity:entity]; 

    NSArray *fetchedArray1 = [[context executeFetchRequest:fetchRequest error:&error] mutableCopy]; 

    ClubDetailsDealsDAO *obb = [fetchedArray1 objectAtIndex:0]; 

    NSLog(@"MY ID IS %@ and count is %d", obb.dealname, [fetchedArray1 count]); 




    NSLog(@"deal is %@", clubID); 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(%K CONTAINS %@)", @"clubid", clubID]; 

    //NSPredicate *predicate = [NSPredicate predicateWithFormat:@"dealid contains[cd] %@", dealID]; 

    [fetchRequest setPredicate:predicate]; 

    NSArray *fetchedArray = [[context executeFetchRequest:fetchRequest error:&error] mutableCopy]; 

    NSLog(@"COUNT of arary is ~~~~ %d", [fetchedArray count]); 

    return fetchedArray; 
} 

在这里,阵列的在该日志中的计数是

*的NSLog(@ “MY ID IS%@ count是%d”,obb.dealname ,[fetchedArray1 count]); *

显示了多个元素,因为我添加了更多,它正常增加。

但是,当我使用此查询

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(%K CONTAINS %@)", @"clubid", clubID]; 

它没有返回取水的时候,连对象CoreData是可用的。

那么什么是正确的查询来获取匹配clubid,即NSString?

尝试此,

-(NSArray*)getClubDetailedDeals:(NSString *)clubID{ 

    NSError *error; 
    NSManagedObjectContext *context = [self managedObjectContext]; 

    NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init]; 

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"ClubDetailsDeals" 
               inManagedObjectContext:context]; 

    [fetchRequest setEntity:entity]; 

[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(dealid 
contains[cd] %@)", clubID]]; 

    NSArray *fetchedArray = [[context executeFetchRequest:fetchRequest error:&error] mutableCopy]; 

    NSLog(@"COUNT of arary is ~~~~ %d", [fetchedArray count]); 

    return fetchedArray; 
} 
+0

[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@ “(dealid 包含苯并[cd]%@)”,clubID]]; – Duaan

+0

是的,你在这里弄错了。你试过这个吗? – karthika

+0

谢谢,它的工作原理,让我知道因为你有时间亲爱的,我接受了答案:) – Duaan