我有一個使用 Core Data 完全開發的應用程式。現在已經完成了,我想添加 CloudKit 同步(就像我對其他應用程式所做的那樣)。但是,當我嘗試這樣做時,loadPersistentStores 函式無法加載 CloudKit 持久存盤。
我添加了 CloudKit 功能和后臺模式遠程通知。

識別符號在開發者網站上注冊:

我有一個用于資料函式的單例 CoreDataManager 類,它適用于本地存盤:
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 Dashboard 中重置了幾次環境。
控制臺錯誤只是說“加載核心資料時出錯。發生核心資料錯誤”。顯然,這不是很有幫助。
我沒主意了。任何指導將不勝感激。Xcode 13.2.1 iOS 15。
uj5u.com熱心網友回復:
這很奇怪。我發現我已將一個核心資料屬性標記為非可選,但我沒有提供默認值。一旦我提供了默認值,CloudKit 商店就會按預期作業。如您所料,找到它是一個相當復雜的除錯程序。
有一些啟動代碼可用于查找額外的核心資料除錯資訊——在這種情況下我沒有找到可以幫助我的代碼,盡管我相信有一個。對于其他人,您可以從這里開始:
https://developer.apple.com/documentation/coredata/accessing_data_when_the_store_changes
同樣,本地持久存盤似乎并不關心這個非可選值,但持久 CloudKit 存盤卻關心。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/412004.html
標籤:
上一篇:“UITableView”型別的值沒有成員“sectionHeaderTopPadding”
下一篇:IB中的Xib尺寸影響最終視圖
