Objectmapper: [Int64]をマッピングする方法は?

作成日 2016年08月11日  ·  4コメント  ·  ソース: tristanhimmelman/ObjectMapper

コードが機能しない、[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
        }
  }

最も参考になるコメント

@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
    }
}

全てのコメント4件

この変換を使用できます->

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
}

}

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

danyalaytekin picture danyalaytekin  ·  4コメント

YunyueLin picture YunyueLin  ·  3コメント

Dbigshooter picture Dbigshooter  ·  4コメント

maksTheAwesome picture maksTheAwesome  ·  4コメント

amg1976 picture amg1976  ·  3コメント