CoreData NSOrderedSet - 修复?

Posted

技术标签:

【中文标题】CoreData NSOrderedSet - 修复?【英文标题】:CoreData NSOrderedSet - Fix? 【发布时间】:2014-02-27 20:46:20 【问题描述】:

今天我的第一个 CoreData 步骤遇到了一些麻烦,发现了这个帖子:Exception thrown in NSOrderedSet generated accessors

我可以通过 cocoapods 加载这个问题,这样我就不必做一些愚蠢的解决方法了吗? 我找不到一个并自己实现所有访问器我不是我使用生成器的:-)

【问题讨论】:

这个答案***.com/a/14453262/1187415 可能很有趣。 【参考方案1】:

如果您决定放弃并实施(傻 - 我知道workaround(覆盖生成器),那么这就是它的示例:

- (void)addInvitesObject:(Invite *)value

    NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.invites];
    [tempSet addObject:value];
    self.invites = tempSet;


- (void)removeInvitesObject:(Invite *)value

    NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.invites];
    [tempSet removeObject:value];
    self.invites = tempSet;

【讨论】:

这与对链接问题(例如***.com/a/7922993/1187415)给出的答案有何不同?【参考方案2】:

没有其他解决方法,因为 Apple 尚未修复它。

您的选择包括:

为您的有序集合/关系覆盖访问器 如果没有必要,不要使用有序关系(这并不像听起来那么奇怪 - 问问自己存储的顺序在你的相关图表中是否重要) 为您的模型使用mogenerator,它为您的所有属性和关系提供了方便的访问器,包括对象和原始值的访问器,在这种情况下,这可能是您所需要的

对我来说,我无法想象没有发电机的生活。 :-) Apple 真的应该推出类似的产品。

【讨论】:

mogenerator 创建的访问器能否正确处理有序关系? 实际上,是的。例如,我有一个包含有序 items 的模型。我可以写 - [self.itemsSet addObject:item];。 Mogenerator 抽象了不断变化的模型属性和关系(随着您的开发),让您实现更高级别的模型细节。阅读它 - 它绝对让生活更轻松。 一个好点是“按顺序存储”。一个很好的副作用是通过索引访问。但我相信,我在这家伙身上冷冷地解决了这个问题。太感谢了

以上是关于CoreData NSOrderedSet - 修复?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中从 FetchedResults (CoreData) 中获取 NSOrderedSet

Coredata 和 NSOrderedSet - 如何定义集合的顺序?

在 CoreData 中使用 NSOrderedSet 重新排序 UITableView

CoreData NSOrderedSet - 修复?

在 CoreData 的 NSOrderedSet 中查找对象。索引(无障碍元素:)

使用 SwiftUI ForEach 从 NSOrderedSet 获取字符串值