小编Anr*_*pps的帖子

在使用一个 ManagedObjectContext 和 PersistentStoreCoordinator 与两个存储时如何保存数据

问题陈述

当尝试将记录保存到读/写存储(该存储是分配给同一 PersistentStoreCoordinator 的两个 SQLite 存储之一)时,我的 iPhone 应用程序崩溃了。保存记录时的一个明显问题是 PersistentStoreCoordinator 不知道在哪个 Store 中保存数据(只是因为我不知道如何实现这一点)。

首先,我将提供总体情况,以确保我的方法是正确的。然后我将提供实施细节。

背景

这是一个简化的示例,代表了我正在开发的实际应用程序的关键方面。

管理对象模型

种子数据

种子数据

用户输入场景

用户输入场景

目前的实施情况

核心数据实施

核心数据实施

数据存储和检索

数据存储和检索

当然,当用户查看选择列表以对属性进行选择时,不应该有任何证据表明这些选择来自两个不同的商店。

持久存储协调器设置

- (NSPersistentStoreCoordinator*)persistentStoreCoordinator {
   if (_persistentStoreCoordinator == nil) {
       NSArray *bundles = @[[NSBundle bundleForClass:[self class]]];
       _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[NSManagedObjectModel mergedModelFromBundles:bundles]];

       NSError *error;
       //--------------------------------------------------
       // Set options for the USER DATA Persistent Store.
       NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption : @YES,
                                       NSInferMappingModelAutomaticallyOption : @YES};
       //--------------------------------------------------
       // Add the USER DATA Store to the Persistent Store Coordinator.
       NSPersistentStore *persistentStore = [_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType …
Run Code Online (Sandbox Code Playgroud)

sqlite core-data persistent-storage managedobjectcontext ios7

5
推荐指数
1
解决办法
975
查看次数