有没有办法解决这个错误:“CloudKit 集成需要不支持有序关系。”
Posted
技术标签:
【中文标题】有没有办法解决这个错误:“CloudKit 集成需要不支持有序关系。”【英文标题】:Is there a way to resolve this error: "CloudKit integration requires does not support ordered relationships." 【发布时间】:2019-07-18 07:41:43 【问题描述】:我正在尝试使用 Apple 的 CoreDataCloudkitDemo 应用程序。我只根据他们的 README 文档更改了应用程序设置。在运行演示时,我收到错误消息:“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】:首先,选择CoreDataCloudKitDemo.xcdatamodeld -> Post -> RelationShips,选择attachments关系,在检查面板,取消选择 Ordered,然后对 tags 关系执行相同操作。
其次,现在代码会有一些错误,因为我们没有勾选Ordered选项,生成的NSManagedObject中attachments
和tags
的属性可能会从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 上,演示显示他们将附件和标签关系都设置为 无序,所以我认为给定的演示项目有问题。
【讨论】:
这是一个使示例项目工作的补丁:github.com/ralfebert/SynchronizingALocalStoreToTheCloud/commit/…(使用 allObjects 工作,但有点危险,因为顺序未定义) 我还必须明确设置 iCloud 容器 ID,否则它会在 ios 和 Catalyst 中得到不同的 ID,从而导致构建错误:github.com/ralfebert/SynchronizingALocalStoreToTheCloud/commit/… 我提交了关于该问题的错误报告 (FB6902557) @RalfEbert 太酷了!!!非常感谢!我现在正在使用此解决方案并使用创建日期对项目进行排序。以上是关于有没有办法解决这个错误:“CloudKit 集成需要不支持有序关系。”的主要内容,如果未能解决你的问题,请参考以下文章
weiphp 3.0创建插件提示错误解决办法 提示您没有创建目录写入权限,
Windows10 远程桌面连接失败,报CredSSP加密oracle修正错误解决办法