gpt4 book ai didi

ios:创建一个 CoreData 对象而不立即持久化它

转载 作者:行者123 更新时间:2023-11-28 17:41:02 24 4
gpt4 key购买 nike

我正在从 Internet 获取一些数据,并想将这些数据存储在一个对象中,比如“InternetData”。此类拥有一些属性,并且此类还绑定(bind)到核心数据持久性存储。

我已经从我的应用程序的前一个 session 下载了 InternetData,并且它们已经存储在核心数据将对象映射到的数据库中。问题:如果我现在想下载新的 Internet 数据,我将至少下载部分相同的新 Internet 数据,只有一小部分是真正新的,其余的已经存储在我的数据库中。我想避免将相同的数据存储两次或更多次。

因此,我想用 [[InternetData alloc] init] 创建一个空的 InternetData 实例,将我下载的内容写入该对象,然后我想使用一种比较方法,将未绑定(bind)的新 InternetData 对象与旧的来自数据库。只有我在旧数据中找不到新对象我想将新对象添加到持久性存储并最终将其存储到数据库中。我目前遇到的问题是当我尝试创建一个独立于 persitence sotre 的新 InternetData 对象时我的程序崩溃了,我的意思是在执行 [[InternetData alloc] init] 时我收到错误消息

CoreData: error: Failed to call designated initializer on NSManagedObject class 'InternetData'
[InternetData setDate:]: unrecognized selector sent to instance 0xd26f4f0

所以我的问题是:这就是我想要的,基本上可以创建一个 InternetData 对象,该对象最初未绑定(bind)到核心数据持久性存储,并且在短时间后我会将新创建的数据复制到第二个有界 InternetData 对象中(我以有界方式创建的)然后将其存储到持久性存储?

最佳答案

有几种方法可以解决您的问题。首先,您不能分配+初始化 NSManagedObjectModel 的实例。因此,您可以执行以下操作来存储临时数据:

  1. 将其存储在NSDictionary
  2. 存储在另一个NSManagedObjectContext

关于ios:创建一个 CoreData 对象而不立即持久化它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8103709/

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