InboxItem我正在为一个新应用程序开发 PoC,并且我遇到了两个 CoreData 实体和 的问题CardSet,它们每个实体之间都具有可选的“对一”关系。当我在模拟器中启动应用程序并创建这些实体时,模拟器数据库和 CloudKit 仪表板中的一切看起来都很好,即两个关系都已设置。但是,当我随后在 iPhone 上运行该应用程序并等待这些新记录同步并随后访问关系时,会出现错误,指出InboxItemto的关系CardSet是nil。看来这种关系没有正确同步“下游”(从 CloudKit 到 CoreData/iCloud 到设备)。
当 CoreData 通过 CloudKit 导入最近的更改时,日志控制台显示以下与缺失关系相关的调试输出:
Importing updated records:
(
"<CKRecord: 0x7faf0d820ac0; recordType=CD_Card, recordID=89A3FE22-1CC4-447D-BFF0-515E80933551:(com.apple.coredata.cloudkit.zone:__defaultOwner__), recordChangeTag=5, values={\n \"CD_cardSet_\" = \"5EED257A-8EF8-4749-93EF-CE2882F52C0C\";\n \"CD_entityName\" = Card;\n \"CD_id_\" = \"5F2FB4B7-A236-48F5-B2F9-FC2520C29765\";\n \"CD_language_\" = \"\\Ud83c\\Udde9\\Ud83c\\Uddea\";\n \"CD_line1_\" = \"\";\n \"CD_line2_\" = \"\";\n \"CD_line3_\" = \"\";\n}>",
"<CKRecord: 0x7faf0d822260; recordType=CD_CardSet, recordID=5EED257A-8EF8-4749-93EF-CE2882F52C0C:(com.apple.coredata.cloudkit.zone:__defaultOwner__), recordChangeTag=4, values={\n \"CD_entityName\" = CardSet;\n \"CD_id_\" = \"E4460BCE-CB08-4DDA-8DDC-1BCC23649A91\";\n \"CD_inboxItem_\" = \"212D86EC-635E-4903-BF51-85B0F36C401B\";\n}>",
"<CKRecord: 0x7faf0d815830; recordType=CD_InboxItem, recordID=212D86EC-635E-4903-BF51-85B0F36C401B:(com.apple.coredata.cloudkit.zone:__defaultOwner__), recordChangeTag=3, values={\n \"CD_addedOn_\" …Run Code Online (Sandbox Code Playgroud) 我尝试了一个包,但决定不使用它。因此,我通过“项目设置”->“Swift Packagesm”删除了迄今为止有效的相应依赖项。关键是,相应的存储库仍然列在源代码管理导航器中 - 在我自己的项目下方,并且有一个名为“Swift Package Dependency”的组。如何删除该存储库?当我右键单击它时,删除按钮被禁用。当我在项目中搜索相应的包时,我没有找到任何东西......