gpt4 book ai didi

ios - 核心数据在过滤器中使用聚合函数

转载 作者:行者123 更新时间:2023-11-29 01:11:40 25 4
gpt4 key购买 nike

是否可以在过滤器中使用聚合函数:

var expressionDescriptions = [AnyObject]()
let request = NSFetchRequest(entityName: "Item")
let expressionDescription = NSExpressionDescription()
expressionDescription.name = "requestsCount"
expressionDescription.expression = NSExpression(format: "@sum.requests.id")
expressionDescription.expressionResultType = .Integer32AttributeType
expressionDescriptions.append(expressionDescription)

request.predicate = NSPredicate(format: "requestsCount != sitesCount")
request.propertiesToFetch = expressionDescriptions
do {
let items = try self.managedObjectContext.executeFetchRequest(request)
} catch {
}

此代码返回错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath requestsCount not found in entity

最佳答案

NSExpression 和相关 API 的使用方式存在一些问题。这很难,在您的情况下也许没有必要。

假设这个数据结构:

Item (requests) <--->> NSSet? (Request)
(sitesCount) Int

您应该简单地获取所有项目并检查内存。这应该不会造成任何资源限制问题(如果有,您可以稍后进行优化):

filteredItems = allItems.filter { ($0.requests?.count ?? 0) != $0.sitesCount }

关于ios - 核心数据在过滤器中使用聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35680923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com