4 @objc(SetValueTransformer)
5 class SetValueTransformer: ValueTransformer {
6 override class func transformedValueClass() -> AnyClass {
10 override class func allowsReverseTransformation() -> Bool {
14 override func transformedValue(_ value: Any?) -> Any? {
16 guard let value = value else { return nil }
17 return try NSKeyedArchiver.archivedData(withRootObject: value, requiringSecureCoding: true)
19 os_log("Failed to serialize a Set: %@", log: tplogDebug, type: .default, error as CVarArg)
24 override func reverseTransformedValue(_ value: Any?) -> Any? {
26 guard let dataOp = value as? Data? else { return nil }
27 guard let data = dataOp else { return nil }
29 let unarchiver = try NSKeyedUnarchiver(forReadingFrom: data)
30 return unarchiver.decodeObject(of: [NSSet.self], forKey: NSKeyedArchiveRootObjectKey)
32 os_log("Failed to deserialize a purported Set: %@", log: tplogDebug, type: .default, error as CVarArg)
37 static let name = NSValueTransformerName(rawValue: "SetValueTransformer")