我在用NSPersistentCloudKitContainer
。
所有数据均在 iCloud 中同步。卸载应用程序后,它会正确同步。
但是,需要对敏感数据进行加密。我将密码属性设置为可转换。因此在本地工作得很好。但是当我删除该应用程序时。再次安装。所有其他属性(字符串、整数)正确同步,但可转换属性未导出/同步。
Here is my Model
public class EmployeeEntity: NSManagedObject {
@NSManaged public var password: NSObject?
@NSManaged public var firstName: String?
@NSManaged public var lastName: String?
@NSManaged public var idNumber: String?
@NSManaged public var modifiedDate: Date?
@NSManaged public var password: String?
@NSManaged public var title: String?
static var entityName: String { return "EmployeeEntity" }
}
extension EmployeeEntity {
static func getListItemFetchRequest() -> NSFetchRequest<EmployeeEntity>{
let request = EmployeeEntity.fetchRequest() as! NSFetchRequest<EmployeeEntity>
request.sortDescriptors = [NSSortDescriptor(key: "createdDate", ascending: false)]
return request
}
}
import UIKit
class EncryptionTransformer: ValueTransformer {
override class func allowsReverseTransformation() -> Bool{
return true
}
override class func transformedValueClass() -> AnyClass {
return NSData.self
}
override func transformedValue(_ value: Any?) -> Any?{
guard let date = value as? String else {return nil}
return date.data(using: .utf8)?.base64EncodedData()
}
override func reverseTransformedValue(_ value: Any?) -> Any?{
guard let data = value as? String, let decoded = Data(base64Encoded: data) else {return nil}
return String(data: decoded, encoding: .utf8)
}
}
您知道为什么 Transformable 值没有从 iCloud 保存/同步吗?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)