我有一个带有今天小部件扩展的应用程序。我需要应用程序、小部件和其他设备上的应用程序和小部件共享数据,因此我正在使用iCloud Core Data集成。起初,我让应用程序和小部件(在单个设备内)共享相同的Core Data存储库(sqlite)在一个共享容器目录中。现在我已启用了iCloud同步,在设备之间工作,但现在我在同一设备上的应用程序和小部件之间显示不一致的数据(?!)。问题可能出在我的小部件GUI更新周期或通知中心订阅上,我仍在排除故障,但同时我想问一下:
当您使用Core Data + iCloud时,在同一设备上的应用程序和小部件之间共享Core Data数据的“正确”解决方案是什么?它们应该共享单个物理存储,还是各自拥有自己的存储?如果这两种方法都有效,则是否存在陷阱?