【问题标题】:NSValueTransformer + MagicalRecord + MogeneratorNSValueTransformer + MagicalRecord + Mogenerator
【发布时间】:2015-07-29 09:09:11
【问题描述】:

在我的 ManagedObjectContext 上调用 save:(NSErrro **) 时,我无法调用我的 NSValueTransformer 实现。

我已经尝试通过编写自己的 ManagedObject-Class 而不依赖于 Mogenerator 来解决此问题,但没有任何成功。

这是我的实体配置的屏幕截图:

这是我的 NSValueTransformer-Subclass(没有一个断点会被命中):

这就是我创建模型和保存上下文的方式。 我还尝试使用 MR_create 和 MR_saveToPersistentStoreCoordinator-Methodes 进行装箱和保存,但没有任何成功。

为什么在将实体保存到持久存储协调器时核心数据不执行我的 NSValueTransformer 代码?

【问题讨论】:

    标签: ios core-data magicalrecord nsvaluetransformer


    【解决方案1】:

    事实证明,将NSManagedObjectContext 直接连接到NSPersistentStoreCoordinator 非常重要。 使用[NSMangedObjectContext MR_default] 和下面的表达式似乎有区别:

    NSPersistentStoreCoordinator *coordinator = [NSPersistentStoreCoordinator MR_defaultStoreCoordinator];
    NSManagedObjectContext *context = [NSManagedObjectContext MR_contextWithStoreCoordinator:coordinator];
    

    我已经修改了上面的代码,所以它使用另一个NSManagedObjectContext,现在我的NSValueTransformer 将被命中。

    Session *session = [self getSession];
    [session MR_deleteEntityInContext:context];
    
    session = [Session sessionWithFirstName:firstName surname:surname response:jsonResponse andContext:context];
    [context MR_saveToPersistentStoreWithCompletion:nil];
    

    所以我的问题解决了——如果有人知道我为什么不能使用[NSManagedObjectContext MR_default],我会很感兴趣的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多