在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;
}
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@ “(dealid 包含苯并[cd]%@)”,clubID]]; – Duaan
是的,你在这里弄错了。你试过这个吗? – karthika
谢谢,它的工作原理,让我知道因为你有时间亲爱的,我接受了答案:) – Duaan