如何在复数提取计数上写入核心数据提取请求

时间:2012-01-25 21:41:01

标签: iphone objective-c core-data

我试图弄清楚如何以Core Data fetch语句的形式编写以下SQL:

select count(*) from MYTABLE where MYTABLE.size='2';

目前我所拥有的只有以下内容:

//setup predicate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY %K == %@", @"size",     searchInteger];
[request setPredicate:predicate];


NSError *error = nil; 
NSInteger count = [managedObjectContext countForFetchRequest:request error:&error]; 
NSLog(@"fetch results count = %i", count);
[request release];

我不确定的是:

  1. 这是使用条件
  2. 进行选择计数(*)的最有效/最快捷的方式
  3. 有没有其他方法可以在这里设置谓词以提高效率?
  4. 欢迎大师的任何建议。

    提前致谢。 PRAS。

1 个答案:

答案 0 :(得分:0)

countForFetchRequest:肯定是最有效的计算方式。我认为你应该在谓词格式字符串中使用关键字ANY

另外,请确保searchInteger的类型为NSNumber。如果不是,你需要将它包装成[NSNumber numberWithInt:searchInteger]之类的东西。