SwiftUI,CloudKit - 无法加载核心数据 NSPersistentCloudKitContainer
SwiftUI, CloudKit - Can't Load Core Data NSPersistentCloudKitContainer
我有一个使用核心数据完全开发的应用程序。既然完成了,我想要
添加 CloudKit 同步(就像我对其他应用所做的一样)。然而,当我
尝试这样做,loadPersistentStores 函数无法加载 CloudKit
持久存储。
我已添加 CloudKit 功能和后台模式远程通知。
标识符已在开发者网站上注册:
我有一个单独的 CoreDataManager class 用于数据函数
当地商店就好了:
class CoreDataManager: ObservableObject {
static let instance = CoreDataManager()
@Published var pubSortOrder: String = "lastName"
//bunch more
//let container: NSPersistentContainer
let container: NSPersistentCloudKitContainer
let context: NSManagedObjectContext
private init() {
//container = NSPersistentContainer(name: "ResLogCloud")
container = NSPersistentCloudKitContainer(name: "ResLogCloud")
container.loadPersistentStores { (description, error) in
if let error = error {
print("Error loading Core Data. \(error.localizedDescription)")
}
}
context = container.viewContext
//uncomment next for CloudKit container
context.automaticallyMergesChangesFromParent = true
context.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
}//init
//bunch of functions dealing with data
}//class
只是为了笑,我已经在 CloudKit 仪表板中重置了几次环境。
控制台错误只是说“加载核心数据时出错。发生核心数据错误。”
显然,这不是很有帮助。
我没主意了。任何指导将不胜感激。 Xcode13.2.1iOS15.
这很奇怪。我发现我已经将一个核心数据属性标记为非可选
但我没有提供默认值。一旦我提供了默认值 CloudKit
商店按预期工作。如您所料,这是一个相当复杂的调试
找到这个的过程。
有启动代码可用于查找额外的 Core Data 调试信息 - I
在这种情况下没有找到可以帮助我的人,尽管我相信有一个。为他人,
你可以从这里开始:
https://developer.apple.com/documentation/coredata/accessing_data_when_the_store_changes
同样,本地持久存储似乎并不关心这个非可选值,但是
持久的 CloudKit 商店做到了。
我有一个使用核心数据完全开发的应用程序。既然完成了,我想要 添加 CloudKit 同步(就像我对其他应用所做的一样)。然而,当我 尝试这样做,loadPersistentStores 函数无法加载 CloudKit 持久存储。
我已添加 CloudKit 功能和后台模式远程通知。
标识符已在开发者网站上注册:
我有一个单独的 CoreDataManager class 用于数据函数 当地商店就好了:
class CoreDataManager: ObservableObject {
static let instance = CoreDataManager()
@Published var pubSortOrder: String = "lastName"
//bunch more
//let container: NSPersistentContainer
let container: NSPersistentCloudKitContainer
let context: NSManagedObjectContext
private init() {
//container = NSPersistentContainer(name: "ResLogCloud")
container = NSPersistentCloudKitContainer(name: "ResLogCloud")
container.loadPersistentStores { (description, error) in
if let error = error {
print("Error loading Core Data. \(error.localizedDescription)")
}
}
context = container.viewContext
//uncomment next for CloudKit container
context.automaticallyMergesChangesFromParent = true
context.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
}//init
//bunch of functions dealing with data
}//class
只是为了笑,我已经在 CloudKit 仪表板中重置了几次环境。
控制台错误只是说“加载核心数据时出错。发生核心数据错误。” 显然,这不是很有帮助。
我没主意了。任何指导将不胜感激。 Xcode13.2.1iOS15.
这很奇怪。我发现我已经将一个核心数据属性标记为非可选 但我没有提供默认值。一旦我提供了默认值 CloudKit 商店按预期工作。如您所料,这是一个相当复杂的调试 找到这个的过程。
有启动代码可用于查找额外的 Core Data 调试信息 - I 在这种情况下没有找到可以帮助我的人,尽管我相信有一个。为他人, 你可以从这里开始:
https://developer.apple.com/documentation/coredata/accessing_data_when_the_store_changes
同样,本地持久存储似乎并不关心这个非可选值,但是 持久的 CloudKit 商店做到了。