首页 > 解决方案 > CoreData派生属性查看一对多关系是否包含属性

问题描述

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

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

谢谢!

标签: iosswiftcore-data

解决方案


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

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


推荐阅读