有没有办法解决此错误:“ CloudKit集成要求不支持有序关系。”

时间:2019-07-18 07:41:43

标签: core-data cloudkit ios13

我正在尝试使用Apple的CoreDataCloudkitDemo应用。我仅根据其自述文件更改了应用程序设置。在运行演示时,我收到错误消息:“ CloudKit集成要求不支持有序关系。”

(应用程序中包含标题中的奇怪语法)

控制台日志显示:

Fatal error: ###persistentContainer: Failed to load persistent stores:Error Domain=NSCocoaErrorDomain Code=134060 "A Core Data error occurred." UserInfo={NSLocalizedFailureReason=CloudKit integration requires does not support ordered relationships. The following relationships are marked ordered:  
Post: attachments  

“标签”实体存在相同的错误。

我正在使用Xcode 11.0 beta 4(11M374r)。

我只更改了捆绑包标识符,并设置了我的团队ID。

我删除了原始的授权文件-生成的版本中没有错误。

我没有更改原始代码。

有人有解决方法,还是最好有解决方法?还是我做错了什么?

谢谢

1 个答案:

答案 0 :(得分:1)

首先,选择 CoreDataCloudKitDemo.xcdatamodeld -> 发布-> RelationShips ,选择附件关系,在检查面板,取消选择已订购,然后对标签关系执行相同的操作。

第二,现在的代码中会出现一些错误,因为我们未选中 Ordered 选项,生成的NSManagedObject中attachmentstags的属性可能会从NSOrderedSet?NSSet?。因此我们可以像下面这样更改这些错误代码行:

来源: guard let tag = post?.tags?.object(at: indexPath.row) as? Tag else { return cell }

已更改: guard let tag = post?.tags?.allObjects[indexPath.row] as? Tag else { return cell }

最后,您现在可以运行代码。 ;-)


此外,在WWDC19 Session 202上,该演示显示他们将附件和标签关系设置为 Unordered ,所以我认为给定的演示项目中存在问题。