【问题标题】:Core Data: Save edits to persistent store核心数据:将编辑保存到持久存储
【发布时间】:2015-05-24 19:27:46
【问题描述】:

我想我知道答案,但不确定。而且我没有很好的检查方法,因为它还不能正常工作,所以我提出问题。

为了显示存储在核心数据的持久存储(即 sqllite 数据库)中的用户配置文件,我使用 NSpredicate 从用户信息的实体或表中获取与用户对应的对象。这会拉起一个用户并将其加载到托管对象上下文中,以便我可以显示它。到目前为止一切顺利。

但是,要编辑信息,是否只需要更改 managedobjectcontext 中的信息并保存,而不需要在保存中具有任何等效的 WHERE 子句。换句话说,做到以下几点就足够了:

[self.user setValue:_description forKey:@"descript"];
 if ([self.managedObjectContext save:&error]) {
            NSLog(@"we saved");
      }

没有指定我们正在编辑持久存储中的哪个托管对象或行?

【问题讨论】:

    标签: ios core-data


    【解决方案1】:

    简短回答 - 是的,拨打save: 就足够了。只要更改的对象是接收方managedObjectContext 的成员并且调用返回YES,保存就完成了。

    NSManagedObjectContext 既不知道也不关心它的后备存储类型。

    NSPersistentStore 是知道其后备存储类型并在设置为NSSQLiteStoreType 时处理与 SQLite 数据库进行交易的机制的东西

    iOS 上可以有 3 种类型的后备存储,OS X 上可以有 4 种类型的存储,所有这些类型的存储都可以同时加载到NSPersistentStoreCoordinator。可能不是一个好主意,但在技术上是可行的。

    如果您特别喜欢冒险,可以通过NSIncrementalStore 制作您自己的商店类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-20
      • 2013-08-19
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      相关资源
      最近更新 更多