【问题标题】:How to write Core Data fetch request on complex fetch count如何在复杂的获取计数上编写核心数据获取请求
【发布时间】:2012-02-19 02:38:15
【问题描述】:

我正在尝试弄清楚如何以 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. 还有其他方法可以在此处设置谓词以提高效率吗?

欢迎大师的任何建议。

提前致谢。 普拉斯。

【问题讨论】:

    标签: iphone objective-c core-data


    【解决方案1】:

    countForFetchRequest: 无疑是获取计数的最有效方式。不过,我认为您应该在谓词格式字符串中使用关键字ANY

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

    【讨论】:

    • 谢谢蒙迪。我将按照说明使用 countForFetch。对于searchInteger来说,其实是数据库上的NSString值,所以我需要搜索一个字符串而不是NSNumber
    猜你喜欢
    • 1970-01-01
    • 2018-12-05
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2019-11-06
    • 2013-04-02
    相关资源
    最近更新 更多