Coredata、NSOrderedSet 和 iCloud
Posted
技术标签:
【中文标题】Coredata、NSOrderedSet 和 iCloud【英文标题】:Coredata, NSOrderedSet and iCloud 【发布时间】:2014-04-29 15:26:07 【问题描述】:我一直在寻找有关在 iCloud 中使用 NSOrderedSet 的信息,因为我的应用程序广泛使用它。
我想使用 iCloud 作为我的核心数据应用程序的备份机制,但我得到“提示”,该机制不能与 iCloud 一起使用,但找不到任何具体的东西来验证这一点。
这是真的吗,即使在 ios7 上也是如此?
谢谢
【问题讨论】:
【参考方案1】:据我所知,iCloud 仍然不支持它。如果他们根本不这样做,我不会感到惊讶。现在已经3年了。
我最近向Ensembles 添加了有序关系,这是一个Core Data 的同步框架,也可以与iCloud 一起使用。为了让它工作,我们必须在每次修改关系时存储所有索引和对象身份。它有效,但它确实会产生比你想要的更多的数据。这也许就是苹果没有这样做的原因。
您可以自己排序关系,使用整数或浮点参数。小心不要达到机器精度的浮点数。 (例如,每次除以 2 可以通过相对较少的插入达到这个限制)
【讨论】:
【参考方案2】:在 iCloud Core Data Programming Guide 中仍然声明不支持:
【讨论】:
谢谢。这是非常乏味的!我敢打赌,只要我修改了使用和“订单”字段,iOS8.0 就会发布支持它! 是的。不支持它一定有一些很好的理由,可能很难保持同步。使用浮动来订购并查看 Big Nerd Ranch 的 iOS 书籍,了解在两个旧内容之间添加新内容的方法。 您可以在 1 和 2 之间添加 1.5,然后在它们之间添加 1.25。不必重新索引整个列表。以上是关于Coredata、NSOrderedSet 和 iCloud的主要内容,如果未能解决你的问题,请参考以下文章
在 CoreData 的 NSOrderedSet 中查找对象。索引(无障碍元素:)
在CoreData的NSOrderedSet中的特定位置插入一个对象?
如何在 SwiftUI 中从 FetchedResults (CoreData) 中获取 NSOrderedSet