kode tidak berfungsi, cara menangani [Int64] atau 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
}
}
Anda dapat menggunakan transformasi ini ->
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
})
dan memodifikasinya untuk diubah menjadi array.
lalu gunakan seperti ini ->
someVariable <- (map["someIntArray"], transformInt64)
Semoga membantu!
Terima kasih banyak!!
Memperluas jawaban oleh @josejuanqm , berikut adalah kelas yang dapat digunakan kembali jika instance kelas global bukan milik Anda:
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
}
}
Bidang int64 mendapat nilai nihil di ObjectMapper 2.2.5 dengan solusi di atas. Saya menguraikan nilai Int64 langsung dari objek String.
impor Yayasan
impor ObjectMapper
kelas Int64Transformer : TransformType {
typealias publik Obyek = Int64
typealias publik 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
}
}
Komentar yang paling membantu
Memperluas jawaban oleh @josejuanqm , berikut adalah kelas yang dapat digunakan kembali jika instance kelas global bukan milik Anda: