gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 19:15:11 28 4
gpt4 key购买 nike

我有一个核心数据实体的自定义类,称为“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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com