objective-c - 仅允许给定核心数据实体的一个实例

标签 objective-c cocoa core-data

在不违反设计原则的情况下,最好的方法是什么?

一个示例是在 awakeFromInsert 中获取该实体的所有先前实例,然后在发现某些内容时抛出异常(或任何人想要执行的操作)。但这种方式很糟糕,因为在模型对象中访问 MOC 肯定不好。

最佳答案

您实际上无法在核心数据对象图上强制执行单例模式。您可以尝试限制另一个实例的插入,但这很麻烦。

根据我的经验,认为您需要单例托管对象的想法表明设计很差。单例用于程序内部的控制。核心数据对象应该代表现实世界的对象、事件或条件,而现实世界的对象、事件和条件不会以单例或类似的形式出现。

您可能正在尝试将 Controller 甚至 View 逻辑放入数据模型中。您可能想重新考虑您的数据模型。

关于objective-c - 仅允许给定核心数据实体的一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446192/

相关文章:

ios - 为什么我的 Xcode 5 没有自动完成任何内容?

iphone - 当转到另一个 UITableViewController 时 UITableViewController 卡住

ios - AFNetworking 请求失败 : unacceptable content-type: text/html

iOS - 更改 UISegmentController 中每个段的文本字体

ios - UILocalnotification 在 iOS7 中不显示

objective-c - 当窗口丢失然后恢复主状态时, cocoa 绘图出现故障

cocoa - IOBluetoothDevice openConnection 失败 - 识别错误代码

cocoa - Cocoa 中单个窗口中的多个文档

iphone - NSFetchedResultsController sectionIndexTitles 错误不是英文字母

ios - 如何将核心数据对象从 MapView 发送到 DetailView