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

Ios 运行FetchRequest时出错(核心数据,SwiftUI),ios,swift,core-data,swiftui,swiftui-list,Ios,Swift,Core Data,Swiftui,Swiftui List,在将核心数据与SwiftUI一起使用时,我可以毫无问题地编译以下代码: @FetchRequest( entity: MyEntity.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \MyEntity.name, ascending: true)] ) var myList: FetchedResults<MyEntity> ...... func wonderFunctio() { let t

在将核心数据与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 ....")
    }
我的代码中是否有任何不合适的地方?

FetchRequest(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
}
让name=“唐老鸭”
let请求:NSFetchRequest=MyEntity.fetchRequest()
request.predicate=NSPredicate(格式:“name==%@”,theName)
如果let result=try?self.context.count(for:request),则result!=0{
//…做任何需要的事
}
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
}