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

标签 ios swift core-data swiftui swiftui-list

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

@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
}

关于ios - 运行FetchRequest时出错(核心数据,SwiftUI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63030450/

相关文章:

ios - UIView 中的 MPMoviePlayerController

ios - 我想在许多字段中搜索 CoreData 记录

ios - Facebook 请求从未被执行

iOS弹出窗口如何去除阴影

ios - 如何在 Swift 中发出 HTTP 请求 + 基本身份验证

ios - 代表 : pass data without segue

ios - 优化 NSFetchedResultsController 支持的 UITableView

ios - 如何使用 iTunes Affiliates Search API 查找特定艺术家的歌曲名称

swift - iAd Interstitial 触摸激活场景按钮。 swift

swift - 使用 Swift 从 Api 下载图像并在 CollectionViewController 中填充图像