Coredata执行Group By sqlite查询 - iOS SDK

时间:2013-06-03 15:57:47

标签: ios objective-c core-data

SELECT count(Name),Test from Name by Name。

如何使用Coredata执行此查询 - iOS SDK

2 个答案:

答案 0 :(得分:1)

你不这样做。

核心数据不是数据库。它是一个碰巧持久存储到磁盘的对象层次结构,其中一个持久性选择是数据库。

NSPredicate将允许您从Core Data中检索实体,然后您可以使用KVC根据需要对它们进行分组并执行计数。

答案 1 :(得分:0)

可以使用NSExpression实现

    // count messages
    let countExpression = NSExpression(format: "count:(message)")
    let countED = NSExpressionDescription()
    countED.expression = countExpression
    countED.name = "messages"
    countED.expressionResultType = .Integer32AttributeType

    // request
    var request = NSFetchRequest()
    request.entity = entityDescription
    request.propertiesToFetch = ["username",messageED]
    request.propertiesToGroupBy = ["username"]

将返回设置为字典

非常重要
    request.resultType = .DictionaryResultType