运行 FetchRequest 时出错(核心数据,SwiftUI)

Error when running a FetchRequest (Core Data, SwiftUI)

在将 Core Data 与 SwiftUI 一起使用时,我编译了以下代码没有问题:

@FetchRequest(
    entity: MyEntity.entity(),
    sortDescriptors: [NSSortDescriptor(keyPath: \MyEntity.name, ascending: true)]
) var myList: FetchedResults<MyEntity>

......

func wonderFunctio() {
    let theName = "Donald-Duck"
    print(#function)
    ......
    print("myList = \(myList.count)")
    
    let predic = NSPredicate(format: "name == %@", theName)
    if FetchRequest<NSFetchRequestResult>(entity: MyEntity.entity(),
                                          sortDescriptors: [],
                                          predicate: predic)
        .wrappedValue.count != 0 {
        print("Useful message ....")
    }

不幸的是,运行时出现了问题。我在 if FetchRequest 行中收到此错误。

  Thread 1: EXC_BREAKPOINT (code=1, subcode=0x1eceee678)

我的代码中是否有任何看起来不合适的地方?

FetchRequest<NSFetchRequestResult>(entity... 是一个 属性 包装器,所以我认为它是无效的用法。

这里有一个可能的解决方案,直接使用 CoreData NSFetchRequest,这似乎更适合在函数中使用

let theName = "Donald-Duck"
let request: NSFetchRequest<MyEntity> = MyEntity.fetchRequest()
request.predicate = NSPredicate(format: "name == %@", theName)

if let result = try? self.context.count(for: request), result != 0 {
    // .. do anything needed
}