gpt4 book ai didi

ios - 在 Core Data 中获取和更新,或者创建和删除 NSManagedObject?

转载 作者:行者123 更新时间:2023-11-29 12:57:23 25 4
gpt4 key购买 nike

我只是好奇,想知道是否有以下问题的“良好做法”答案:

如果我在 Core Data 中有一个轻量级的 NSManagedObject 子类,其中对象将被频繁地创建和删除,并且子类本身相当简单(例如,一个关系,最少的属性),是否建议根据需要创建和删除实例或者根据需要设置和取消设置现有实例?

例如,假设我们有一个名为 Tag 的理论上的 NSManagedObject 子类,它与另一个子类 MyObject 有关系。 MyObject 可以有多个 Tag 对象,但每个 Tag 最多有一个 MyObject 对象。 Tag有一个属性text,是一个用户设置的NSString。

在上面的例子中,我可以想到两种不同的实现方式:

  • 创建和销毁:当您需要一个新的标签时,您可以创建一个新的标签。当你想删除一个标签时,你可以从 Core Data 中删除它。
  • 更新和重用:当您需要一个新的标签时,您首先搜索带有text = nil<的现有标签对象 并且只有在所有现有的 Tag 对象都被使用时才创建一个新的 Tag 对象。当您想要删除 Tag 时,您可以删除它与其 MyObject 对象的关系并设置 text = nil

“创建和销毁”似乎更直接,占用的空间与它需要的空间一样多,但“更新和重用”最大限度地减少了删除和创建对象的次数。 (我想在 save 上删除多余的 Tag 对象,并跟踪未设置的 Tag 对象,这样您就不必从每次都是核心数据。)

您会推荐哪种实现方式?有没有我没想到的不同实现方式?我是不是问错了问题/没有提供足够的细节?

我想我可以制作一个示例 Xcode 项目并自己进行测试,但我猜你会有更明智的意见/更多的经验,而不仅仅是优化时间和内存。

最佳答案

创建和销毁是最佳实践。当您的应用程序变得更加复杂并且存在合并问题的风险时,重用就会产生影响。插入和更新之间的成本差异很小。

关于ios - 在 Core Data 中获取和更新,或者创建和删除 NSManagedObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20697613/

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