我不能让我的NSValueTransformer实现在我的ManagedObjectContext上调用save:(NSErrro **)。
我已经尝试通过编写我自己的ManagedObject-Class来解决这个问题,而不是依赖Mogenerator,但没有任何成功。
以下是我的实体配置的截图:

这是我的NSValueTransformer-Subclass (不会命中任何断点):

下面是我创建模型和保存上下文的方法。我还尝试过使用MR_create和MR_saveToPersistentStoreCoordinator Methodes方法进行装箱和保存,但都没有成功。

为什么在将实体保存到持久存储协调器时,核心数据不执行我的NSValueTransformer代码?
发布于 2015-07-29 18:54:02
事实证明,将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],我会很感兴趣的!
https://stackoverflow.com/questions/31695998
复制相似问题