使用核心数据转换进行加密

时间:2015-05-19 04:26:29

标签: ios xcode core-data

我坚持为什么没有调用我的可转换类。以下屏幕截图将我的实体属性显示为可转换的:

enter image description here

根据文档,它应该自动调用类“StringEncryptionTransformer”并执行转换。

我按了this guide来设置课程。我正在使用提供的EncryptionTransformer和StringEncryptionTransformer类,我所做的唯一更改是加密以使用RNcryptor。

加密:

return [RNEncryptor encryptData:data withSettings:kRNCryptorAES256Settings password:[self key] error:&error];

和解密:

return [RNDecryptor decryptData:data withPassword:[self key] error:&error];

保存的实体似乎永远不会经历转换,是否有我遗漏的东西?我尝试将初始化添加到NSManagedObject,但结果是一样的。

1 个答案:

答案 0 :(得分:0)

您需要像下面那样注册值转换器

extension NSValueTransformerName {
    static let classNameTransformerName = NSValueTransformerName(rawValue: "ClassNameTransformer")
}

ValueTransformer.setValueTransformer(ClassNameTransformer(), forName: .classNameTransformerName)