访问Core Data中的Transformable属性的原始NSData

时间:2014-08-27 05:50:19

标签: objective-c core-data nsdata nsmanagedobject nsvaluetransformer

在我的模型中,我有一个属性transformingString,它使用“Transformable”类型将NSString对象存储为NSData。在我的代码中,我在NSManagedObject中有一个NSString作为动态属性,并且访问该属性会自动调用值转换器以从NSData转换为NSString。

在某些情况下,我想在我的代码中访问原始NSData,而不调用NSValueTransformer,因此我可以针对某些边缘情况以不同的方式处理NSData。我怎样才能做到这一点?我不认为有任何方法可以关闭我的Core Data模型的Transformable类型。我希望有一些方法可以直接访问传递给变换器的原始NSData。

我尝试了[self primitiveValueForKey: @"transformingString"]但是它也调用了NSValueTransformer并返回了NSString类型。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

如果我恢复,则需要访问未存储在持久存储中的NSManagedObject上的值。我建议你在NSManagedObject上添加一个类别。在此类别中,以readonly声明属性(以确保不用于其他内容)。在实现中返回原始NSData。