swift - SwiftUI Core Data WatchOS 中的这个错误是什么意思?
问题描述
我有一个处理核心数据的 iOS 应用程序。现在我想创建一个具有一些 iOS 视图的 watchOS 应用程序。
我的目标是让用户在 Watch 上创建一个 CoreData 对象。
如果我在 CoreData 文件的目标成员中选择监视扩展并为我的对象创建一个 FetchRequest 一切正常,直到我打开该视图。如果我打开视图,我会收到以下错误代码:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
我已经读到有一些针对 UserDefaults 的解决方案,但我还没有为 CoreData 找到任何解决方案。
有谁知道如何解决这个问题以及如何正确获取核心数据?
编辑:CoreData 文件:通过 XCode12 生成
import CoreData
struct PersistenceController {
static let shared = PersistenceController()
static var preview: PersistenceController = {
let result = PersistenceController(inMemory: true)
let viewContext = result.container.viewContext
do {
try viewContext.save()
} catch {
let nsError = error as NSError
fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
}
return result
}()
let container: NSPersistentCloudKitContainer
init(inMemory: Bool = false) {
container = NSPersistentCloudKitContainer(name: "Fitness")
if inMemory {
container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null")
}
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
}
}
手表扩展中的获取请求
@Environment(\.managedObjectContext) var viewContext
@FetchRequest(
entity: Item.entity(),
sortDescriptors: [NSSortDescriptor(keyPath: \Item.name, ascending: false)]
) var Itemlist: FetchedResults<Item>
我与手表扩展共享了所有相关文件。
解决方案
推荐阅读
- javascript - 具有多个固定行和列的 HTML 表格
- c# - 如何模拟 Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.CryptographyManager
- android - 如何在AndroidX的布局xml中添加cardview
- python - 如何在一个表面上为 pygame 设置多个输入框并将这些输入存储在变量中?
- laravel - 使用策略的 Laravel Nova 授权不起作用
- jquery - 在模式弹出窗口中选择单选按钮
- java - Java多线程大写字符串
- android - 从 Firebase 数据库中检索值
- c++ - 数组中最大的非重复元素
- javascript - Mapbox 图层未显示样式更改