CoreData使用iCloud,不使用同步通知

时间:2016-03-10 11:03:15

标签: swift core-data notifications synchronization icloud

我正在用icloud开发coredata。 我有这个问题。 coledata与icloud工作正常,除了同步通知〜 我的代码在这里〜

NSNotificationCenter.defaultCenter().addObserver(self, 
    selector: "changedDataOniCloud:", 
    name: NSPersistentStoreDidImportUbiquitousContentChangesNotification, 
    object: nil)

并假设接收下面的同步通知,

func changedDataOniCloud(notification: NSNotification) {
    self.textView.text = "changedDataOniCloud"
}

我有iPhone和iPad。 如果在iphone中更改了数据,那么ipad获取同步数据和更改通知必须响应。 同步数据工作正常,但通知无效!

请在github上查看我的项目 https://github.com/beauspiring/ios/blob/coredata_icloud/Example/ViewController.swift (分支:coredata_icloud)

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。

这是一个很好的参考:https://developer.apple.com/library/mac/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/UsingSQLiteStoragewithiCloud/UsingSQLiteStoragewithiCloud.html#//apple_ref/doc/uid/TP40013491-CH3-SW3

我在这里更改了addObserver代码〜

NSNotificationCenter.defaultCenter().addObserverForName(
    NSPersistentStoreDidImportUbiquitousContentChangesNotification, 
    object: self.moc.persistentStoreCoordinator, 
    queue: NSOperationQueue.mainQueue(), 
    usingBlock: { (noti: NSNotification) -> Void in
            self.textView.text = "Ubiquitous Content Changes"
})

对象和队列的两个参数很重要 谢谢我的自我:)