关系 属性 计数的关键路径

keyPath for relationship property count

我正在尝试为获取的结果控制器创建一个 NSPredicate,该控制器应该只观察具有关系(不为零)并且关系计数大于 0 的对象。

我已经了解了如何使用字符串作为谓词的参数:

[NSPredicate predicateWithFormat:@"excludedOccurrences.@count == 0"];

来自:

但我试图摆脱文字字符串,所以我想使用关键路径。

示例:

import UIKit
import CoreData

class Animal: NSManagedObject {

    @NSManaged var name: String
    @NSManaged var friends: NSSet?
}

let keyPath = #keyPath(Animal.friends.count)

导致错误: 对成员 'count'

的引用不明确

#keyPath 不知道 @count 运算符。但是你可以 将它用于 "Animal.friends" 键路径并附加 @count 在谓词格式字符串中:

NSPredicate(format: "%K.@count = 0", #keyPath(Animal.friends))