Core data 未在任一iOS设备上激发NSPersistentStoredImportubiquitusContentChangesNotification

Core data 未在任一iOS设备上激发NSPersistentStoredImportubiquitusContentChangesNotification,core-data,icloud,nspersistentstore,Core Data,Icloud,Nspersistentstore,我已经使用SQLite日志设置了核心数据以与iCloud一起工作,我已经打开了核心数据和SQLite日志,并将其设置为模式中的第3级,所有这些都不会在从本地存储或云存储获取或放置数据时产生错误 我的本地存储存储所有SQLite数据,而云存储被配置为仅在两个实体之间移动,因为所有本地实体都不需要更新 记录持久存储时,它们都会出现 在developer.icloud.com上,该文件夹用于存储数据,有两个子文件夹(一个用于iPad,另一个用于iPhone)。每个文件夹中都有两个子文件夹和一个rece

我已经使用SQLite日志设置了核心数据以与iCloud一起工作,我已经打开了核心数据和SQLite日志,并将其设置为模式中的第3级,所有这些都不会在从本地存储或云存储获取或放置数据时产生错误

我的本地存储存储所有SQLite数据,而云存储被配置为仅在两个实体之间移动,因为所有本地实体都不需要更新

记录持久存储时,它们都会出现

在developer.icloud.com上,该文件夹用于存储数据,有两个子文件夹(一个用于iPad,另一个用于iPhone)。每个文件夹中都有两个子文件夹和一个
receipt.0.cdt
文件

即使一切似乎都已设置好,但当我操作应用程序中的两个实体之一时,
nsPersistentStoreDidImportubiQuantiousContentChangesNotification
从未触发(在任一设备上)

即使本地数据存储(保存所有实体的本地副本)已更新,并且此更改会反映在UI中

以下是正在操作的存储(在操作发生时记录)

这真的让我感到困惑,因为在加载数据或向数据存储添加数据时不会产生错误,所以理论上应该是可行的


非常感谢你的帮助

在我看来,您的数据库存储是为iCloud创建的,但没有任何内容

Receive.0.cdt文件显示在每个通过iCloud使用该应用程序的设备的事务日志文件夹中,但仅在最初(在创建商店时,或从其他设备连接到现有商店时)。实际包含数据的事务日志的名称更像:

FFFE99DC-87D7-5CBE-BFD8-32E11-D3E934.1.cdt
和的大小与该事务中插入/更新/删除的记录数等成比例。这些事务日志显示在与生成这些事务的设备相关的iCloud设备文件夹中

如果设备已连接到该应用程序的iCloud,但未执行其自身的任何事务,则该设备中只包含receive.0.cdt文件

如果解压receive.0.cdt,您将得到一个文本文件,其中似乎包含对生成这些事务日志的设备的引用(尽管最初是空的)

这就表明:

mobile.DEVICE_TWO:2:mobile.DEVICE_ONE:4
因此,receive.0.cdt只是iCloud中连接到该存储的每个设备记录的交易数量的内务管理参考

集中精力确保您实际将数据放入iCloud存储(使用正确的上下文,不要与本地存储上下文混淆等),然后实际保存数据


如果这些都不起作用,试着把整个iCloud容器吹走,然后重新开始,以防你的ubiquity存储出现问题(这是对几乎所有iCloud核心数据难题的标准响应!).

对于仍在试图弄清楚为何未收到此通知的用户:请将通知名称作为常量而不是字符串(Swift中的代码)提供

不要做:

"NSPersistentStoreDidImportUbiquitousContentChangesNotification"
相反,要:

NSPersistentStoreDidImportUbiquitousContentChangesNotification

那么,显而易见的问题是,你确定你在听通知吗?而不是以某种方式注销它?是的,没有注销-观察者与所有其他核心数据一起在应用程序委托上。receive.0.cdt文件都只有1kb,所以我想知道是否有任何东西首先进入了云中。你知道为什么只有在我启动应用程序时才会触发通知,而在我更新另一台设备中的iCloud数据时,才会触发通知吗?我激活了日志记录,并且看到更新到达(控制台中有很多日志记录,显然没有错误),但是没有触发任何通知,并且当我获取数据时也没有更新。它将仅在下一次应用程序发布后更新。
mobile.DEVICE_TWO:2:mobile.DEVICE_ONE:4
"NSPersistentStoreDidImportUbiquitousContentChangesNotification"
NSPersistentStoreDidImportUbiquitousContentChangesNotification