iphone - 我可以手动创建核心数据实体类的实例以供临时使用吗?

标签 iphone core-data

我有一个核心数据实体的自定义类,称为“Friends”。当我解析 XML 文件时,我需要创建临时实例来保存临时数据,此时不使用 Core Data。所以有两个选择:

A) 创建一个 NSMutableDictionary 来保存临时数据,同时从 XML 解析“对象”。

B) 在解析时使用实体的类来存储临时数据。我更喜欢这样,因为它对我来说更清晰、更干燥,因为数据结构已经在那里声明了,我不必在 NSMutableDictionary 中复制该实体的整个数据模型。

但是 B 有一个问题:默认情况下,所有属性都是 @dynamic,据我所知,Core Data 负责在运行时创建实现。所以我不能只使用那里的属性。因此,这就提出了一个问题:是否值得付出努力,甚至可以修改该类,使其可以在没有 Core Data 的情况下用作临时数据容器对象,即通过创建实例变量。当然,如果我必须在那里创建一个字典来保存临时数据,那就完全没有意义了,我会选择 A。

最佳答案

更新:听起来您可以使用 nil 上下文(请参阅下面 Adam 的回答)

不幸的是,实例化托管对象子类的唯一方法是将其插入上下文中。

使用可变字典 (NSMutableDictionary) 是最好的方法,因为您可以使用 setValuesForKeysWithDictionary: 通过单个方法调用填充新的托管对象。

另一种方法是插入托管对象,然后在确定它不是新的时将其删除。如果您尚未保存,该对象甚至永远不会被写入持久存储。
注意:这假设您在添加唯一 ID 之前确定该对象是否是新的,或者在获取唯一 ID 时排除临时对象(使用属性或使用它们的集合进行过滤),以便您仅检查之前存在的对象。

关于iphone - 我可以手动创建核心数据实体类的实例以供临时使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2251158/

相关文章:

iphone - UILabel 的变量 IBOutlet 名称?

iphone - 在iPhone项目中为sqlite实现Haversine功能

iphone - 哪个UIWebView有加载请求?

iphone - 基于位置的通知不会在挂起模式下调用

ios - 核心数据有必要迁移吗?

swift - 核心数据查询的单元测试用例

iphone - 检测 UISearchBar 在文本字段上的焦点

ios - 覆盖核心数据对多属性并返回过滤集

ios - 如何通过 UISwitch 改变变量的值?

ios - Momento 和 1 to Many Joins : CoreData Approach, 设计注意事项及征求意见