コードが機能しない、[Int64]またはTransformの処理方法
public struct TestObject Mappable {
var check_time : [Int64]? // not working
public init?(_ map: Map) {
}
mutating public func mapping(map: Map) {
check_time <- map["check_time"] // not working
}
}
この変換を使用できます->
public let transformInt64 = TransformOf<Int64, Int>(fromJSON: { (value: Int?) -> Int64? in
guard let v = value else{
return nil
}
return Int64(v)
}, toJSON: { (value: Int64?) -> Int? in
// transform value from Int? to String?
if let value = value {
return Int(value)
}
return nil
})
配列に変換するように変更します。
次に、このように使用します->
someVariable <- (map["someIntArray"], transformInt64)
それが役に立てば幸い!
まことにありがとうございます!!
@josejuanqmによる回答を拡張して、グローバルクラスインスタンスがあなたのバッグでない場合に再利用できるクラスを
import ObjectMapper
public class Int64Transform: TransformType {
public typealias Object = Int64
public typealias JSON = Int
public func transformFromJSON(value: AnyObject?) -> Int64? {
guard let value = value as? Int else {
return nil
}
return Int64(value)
}
public func transformToJSON(value: Int64?) -> Int? {
if let data = value {
return Int(data)
}
return nil
}
}
上記のソリューションでは、int64フィールドはObjectMapper2.2.5でnil値を取得しました。 Stringオブジェクトから直接Int64値を解析しました。
輸入財団
ObjectMapperをインポートします
クラスInt64Transformer:TransformType {
public typealias Object = Int64
public typealias JSON = String
public func transformFromJSON(_ value: Any?) -> Int64? {
guard let value = value as? String else {
return nil
}
return Int64(value)
}
public func transformToJSON(_ value: Int64?) -> String? {
if let data = value {
return String(data)
}
return nil
}
}
最も参考になるコメント
@josejuanqmによる回答を拡張して、グローバルクラスインスタンスがあなたのバッグでない場合に再利用できるクラスを