首页 > 解决方案 > 如何在 Swift 中将 NSPredicate 与计算属性一起使用?

问题描述

我正在尝试使用 NSPredicate 在 SwiftUI 中创建 @FetchRequest,如下所示:

@FetchRequest(entity: CoreDataRecipe.entity(), sortDescriptors: [], predicate: NSPredicate(format: "isRunning == true")) var runningRecipes: FetchedResults<CoreDataRecipe>

不幸的是,我的isRunning属性是一个计算属性,如下所示:

var isRunning: Bool {
    get {
        activeStep != nil
    }
}

问题是 NSPredicate 会崩溃,因为它在解析谓词时找不到计算属性的字符串。有没有办法让这成为可能?我很想使用它,因为它可以让我创建一个不错的用户体验。

注意:我无法测试 activeStep 作为替代方案,因为它也是一个计算属性,具有更复杂的逻辑。

标签: core-dataswiftuinspredicateswift-keypath

解决方案


推荐阅读