gpt4 book ai didi

ios - 将 NSManagedObject 复制到 Swift 中的临时 NSManagedObject

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

我已经将一个 NSManagedObject 对象复制到一个临时的 NSManagedObject 对象中。这样,如果用户输入没有变化,我就可以使用那个临时的 NSManagedObject 对象。否则,我可以使用实际的 NSManagedObject 对象。

问题是,如果我更改实际 NSManagedObject 对象中的任何值,它会自动反射(reflect)在临时 NSManagedObject 对象中。当我在网上搜索时,他们说 NSManagedObject 不符合 NSCopying 协议(protocol)。此外,复制的对象将引用实际的 NSManagedObject 对象。

有没有办法克服这个问题?

最佳答案

我认为了解您为什么“需要”一个临时的 NSManagedObject 会很有帮助。

NSManagedObject 这样的类是引用类型。这意味着您的原始对象和临时对象都在内存中引用相同的地址,并且对一个的更改将反射(reflect)在另一个中。

但是,结构是值类型。也许您可以创建一个结构,您可以使用托管对象对其进行初始化,并使用它来存储您需要临时保存的任何数据。

此外,特定于 NSManagedObject 的想法是它们 是临时的。当您更改托管对象的属性时,它不会持久化,直到您使用托管对象上下文将其写入持久存储。

关于ios - 将 NSManagedObject 复制到 Swift 中的临时 NSManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46119393/

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