CoreData派生属性查看一对多关系是不是包含属性

Posted

技术标签:

【中文标题】CoreData派生属性查看一对多关系是不是包含属性【英文标题】:CoreData derived attribute to see if a one-to-many relationship contains attributeCoreData派生属性查看一对多关系是否包含属性 【发布时间】:2020-06-09 19:32:40 【问题描述】:

我有一个 CoreData 模型,它有一个名为 Artist 的实体,它与一个名为 Album 的实体具有一对多的关系。 Album 实体有一个布尔属性“isLocal”。我想为 Artist 实体编写一个 CoreData 派生属性,一个名为 hasLocalAlbums 的布尔值,它将反映关系中的任何专辑是否具有 isLocal == true。

我找不到任何关于非数字派生属性(@sum、@avg 等)的文档。有谁知道这是否可能?

谢谢!

【问题讨论】:

【参考方案1】:

根据文档here,对多键路径支持的唯一函数是@sum 和@count。

如果你想使用 kludge,你可以将 isLocal 属性实现为整数,值为 1 表示真,0 表示假(可能使用包装器进行转换),然后使用带有 @sum 的派生属性来表示 @ 987654323@。任何非零值都对应true,但它的值实际上是本地专辑数量的计数。

【讨论】:

以上是关于CoreData派生属性查看一对多关系是不是包含属性的主要内容,如果未能解决你的问题,请参考以下文章

CoreData 在一对多关系中编辑一个属性

NSPredicate:“添加”一对多关系CoreData中所有实体的属性值

IOS:通过一对多关系获取核心数据

无法使用 Swift 在 CoreData 中访问一对多关系

一对多关系的CoreData谓词

在一对多 CoreData 关系错误上调用“计数”是不是会将集合中的所有对象都带入内存?