0

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

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

这是我的实体配置的屏幕截图: 在此处输入图像描述

这是我的 NSValueTransformer-Subclass (不会命中任何断点): 在此处输入图像描述

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

在此处输入图像描述

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

4

1 回答 1

1

事实证明,NSManagedObjectContext直接连接到NSPersistentStoreCoordinator. [NSMangedObjectContext MR_default]using和以下表达式之间似乎存在差异:

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]我会很感兴趣的!

于 2015-07-29T10:54:01.800 回答