gpt4 book ai didi

swift - 如何在 Swift 中构建 NSPredicate 来获取关系?

转载 作者:行者123 更新时间:2023-11-30 14:08:54 26 4
gpt4 key购买 nike

我有一个这样的数据模型:

Section      <----->>  SubSection
(subSections) (section)

现在我想获取给定部分的所有 SubSections。在 Objective C 中我会这样做:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"section == %@",
self.sectionObject];

在 Swift 中我尝试过

fetchRequest.predicate = NSPredicate(format: "section == %@", arguments: self.sectionObject)

(FetchRequest是为实体SubSection配置的。)

但这会导致编译器错误无法使用类型为“(format: String,arguments: NSManagedObject?)”的参数列表调用类型“NSPredicate”的初始值设定项

我知道我可以这样做:

let sectionName: String = self.sectionObject!.valueForKey("name") as! String
fetchRequest.predicate = NSPredicate(format: "section.name == %@", argumentArray: [sectionName])

但据我从 Apple 文档中记得,这性能不是很好,因此不建议这样做。

那么如何在 Swift 中正确完成呢?

最佳答案

两者

NSPredicate(format: "section == %@", arguments: [self.sectionObject])
NSPredicate(format: "section == %@", self.sectionObject)

应该可以工作。第一个将谓词的值作为数组传递,第二个将作为变量参数列表。

关于swift - 如何在 Swift 中构建 NSPredicate 来获取关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983279/

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