我有一个应用程序,有一个苹果手表扩展。两者都使用核心数据。我在这两个方面都启用了CloudKit功能。我已经按照here所述配置了这两个应用程序我打开iOS应用程序,更改数据库,但手表上什么也没发生。我的意思是,结果不会在手表上更新。两个问题:1.我必须做些什么才能从iCloud推送或接收通知吗?1.我如何知道手表何时收到来自iCloud的通知?这是调试此问题的方法吗?
mum43rcc1#
我已经配置了我的iOS和Watch应用程序,100%遵循苹果在我提到的文档中所写的内容,并且这些应用程序没有通过CloudKit同步。解决方案是将PersistenceController修改为:
PersistenceController
import CoreData struct PersistenceController { static let shared = PersistenceController() let container: NSPersistentCloudKitContainer var context: NSManagedObjectContext { return container.viewContext } init(inMemory: Bool = false) { container = NSPersistentCloudKitContainer(name: "MyApp") container.viewContext.automaticallyMergesChangesFromParent = true container.viewContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy guard let description = container.persistentStoreDescriptions.first else{ fatalError("###\(#function): Failed to retrieve a persistent store description.") } description.setOption(true as NSNumber, forKey: NSPersistentHistoryTrackingKey) // Generate NOTIFICATIONS on remote changes description.setOption(true as NSNumber, forKey: NSPersistentStoreRemoteChangeNotificationPostOptionKey) description.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.myCompany.MyApp") 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)") } }) } }
字符串然后从iPhone和Watch中删除应用程序并再次运行。它将立即工作。
1条答案
按热度按时间mum43rcc1#
我已经配置了我的iOS和Watch应用程序,100%遵循苹果在我提到的文档中所写的内容,并且这些应用程序没有通过CloudKit同步。
解决方案是将
PersistenceController
修改为:字符串
然后从iPhone和Watch中删除应用程序并再次运行。它将立即工作。