GBA-8-19/CGame/Database/Model/Transformers/GameControllerInputMappingTransformer.swift
bluesea 66c5202be8 s
2024-06-14 18:12:40 +08:00

62 lines
1.4 KiB
Swift

//
// GameControllerInputMappingTransformer.swift
// Hthik
//
// Created by Hthik on 9/27/17.
// Copyright © 2017 Hthik. All rights reserved.
//
import Foundation
import DeltaCore
@objc(GameControllerInputMappingTransformer)
class GameControllerInputMappingTransformer: ValueTransformer
{
override class func transformedValueClass() -> AnyClass {
return NSData.self
}
override class func allowsReverseTransformation() -> Bool {
return true
}
override func transformedValue(_ value: Any?) -> Any?
{
guard let inputMapping = value as? DeltaCore.GameControllerInputMapping else { return nil }
let plistEncoder = PropertyListEncoder()
do
{
let data = try plistEncoder.encode(inputMapping)
return data
}
catch
{
print(error)
return nil
}
}
override func reverseTransformedValue(_ value: Any?) -> Any?
{
guard let inputMappingData = value as? Data else { return nil }
let plistDecoder = PropertyListDecoder()
do
{
let inputMapping = try plistDecoder.decode(DeltaCore.GameControllerInputMapping.self, from: inputMappingData)
return inputMapping
}
catch
{
print(error)
return nil
}
}
}