Ios 运行FetchRequest时出错(核心数据,SwiftUI)
在将核心数据与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
@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…是一个属性包装器,因此我假设它的用法无效
这里有一个可能的解决方案,直接使用CoreDataNSFetchRequest
,这似乎更适合在函数中使用
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
}