【问题标题】:Core Data, iCloud and two persistence stores failCore Data、iCloud 和两个持久性存储失败
【发布时间】:2013-01-26 09:27:44
【问题描述】:

我有一个带有单个持久存储的现有数据模型,一切都很好。

现在,在 WWDC 2012 视频“使用 iCloud 与核心数据”(#227)之后,我在我的模型中定义了两个配置,“云”和“本地”,同时保持原来的“默认”。我已经将我的实体分为“云”和“本地”。在我的代码中,我只添加了两个对应的持久存储:

  NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @YES,
                            NSInferMappingModelAutomaticallyOption: @YES};
  if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                                  configuration:@"Cloud"
                                                            URL:[self cloudPersistentStoreURL]
                                                        options:options
                                                          error:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
  }

  if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                                  configuration:@"Local"
                                                            URL:[self localPersistentStoreURL]
                                                        options:options
                                                          error:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
  }

这些添加得很好。后来,在运行应用程序时,我尝试正常保存一些初始试用数据,抛出以下异常:

NSUnderlyingException=无法解决如何将对象分配给商店; 某些对象可能已分配给商店;使用 [[托管对象 objectID] persistentStore] 找出现在在哪里;采用 [managedObjectContext assignObject:toStore:] 把事情理顺

我在 Google 上搜索了其中的一部分,没有任何结果,Apple 的故障排除核心数据文档似乎没有讨论这个问题。我不知道是什么原因造成的,也不知道去哪里找。有什么想法吗?

【问题讨论】:

    标签: ios core-data icloud persistent-storage


    【解决方案1】:

    确保您没有从一家商店到另一家商店的关系。相关实体必须位于同一配置中。

    例如,您将实体Book 配置为存储在Cloud 中,并将Author 配置为存储在Local 中。两者都是相关的。 当您现在将 Author 分配给 Book 并保存时,CoreData 无法处理该关系并会引发您看到的错误。

    【讨论】:

    • 啊我也想知道这个 - WWDC 视频没有任何关系。我确实有跨越商店的关系。仅与公共商店中的实体相关的实体会引发异常,但这无关紧要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多