Swift-停止实体的iCloud mergeChangesFromContextDidSaveNotification

Swift-停止实体的iCloud mergeChangesFromContextDidSaveNotification,swift,core-data,icloud,Swift,Core Data,Icloud,在println(字典)上我得到了这个 NSNotificationCenter.defaultCenter().addObserver(self, selector: "persistentStoreDidImportUbiquitousContentChanges:", name:NSPersistentStoreDidImportUbiquitousContentChangesNotification, object: coordinator) func persistentStore

println(字典)
上我得到了这个

NSNotificationCenter.defaultCenter().addObserver(self, selector: "persistentStoreDidImportUbiquitousContentChanges:", name:NSPersistentStoreDidImportUbiquitousContentChangesNotification, object: coordinator)


func persistentStoreDidImportUbiquitousContentChanges(notification: NSNotification) {
    let dictionary = notification.userInfo!
    println(dictionary)
    var moc: NSManagedObjectContext = self.managedObjectContext!
    moc.performBlock { () -> Void in
        moc.mergeChangesFromContextDidSaveNotification(notification)
    }
}
[插入:{(
0x7a1111f0,
0x7a115620
)},删除:{(
)},更新日期:{(
)}]
[插入:{(
0x78ed06f0,
0x78e94ae0
)},删除:{(
)},更新日期:{(
)}]
问题

  • 如何防止插入设置
  • 如何在设置中查找字典插入的信息

  • 你不能阻止它。调用
    mergeChangesFromContextDidSaveNotification
    时,将合并保存通知中的所有更改。没有定制

    您可以使用
    NSManagedObjectContext
    mergePolicy
    设置来控制合并更改的方式。这会影响在合并更改时,
    moc
    加载的数据如何受到影响,例如,是保留内存更改还是覆盖更改。内置的合并策略包括
    nsmergebypropertyStoreTommergePolicyType
    NSOverwriteMergePolicyType
    之类的内容,或者您可以创建自己的自定义策略

    无论如何,试图阻止它是没有意义的。这里合并更改的要点是,这些更改已经保存到持久存储文件中,并且您要确保
    moc
    知道这些更改。如果您以某种方式阻止
    moc
    了解某个实体类型的更改,这些更改将仍然存在,只是现在
    moc
    将过时

    [inserted: {(
        0x7a1111f0 <x-coredata://5D1E5D9E-BB22-445E-BF1F-9E7012381FA1/People/p5>,
        0x7a115620 <x-coredata://5D1E5D9E-BB22-445E-BF1F-9E7012381FA1/Settings/p5>
    )}, deleted: {(
    )}, updated: {(
    )}]
    [inserted: {(
        0x78ed06f0 <x-coredata://5D1E5D9E-BB22-445E-BF1F-9E7012381FA1/People/p6>,
        0x78e94ae0 <x-coredata://5D1E5D9E-BB22-445E-BF1F-9E7012381FA1/Settings/p6>
    )}, deleted: {(
    )}, updated: {(
    )}]