2017-09-20 3 views

답변

2

내가 가진 최선의 해결책은 이것이지만 인코딩/디코딩의 오버 헤드가 있습니다. 질문의 예에서 다음

extension Decodable { 
    init(_ any: Any) throws { 
    let data = try JSONSerialization.data(withJSONObject: any, options: .prettyPrinted) 
    let decoder = JSONDecoder() 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:sszzz" 
    decoder.dateDecodingStrategy = .formatted(dateFormatter) 
    self = try decoder.decode(Self.self, from: data) 
    } 
} 

결과는

let person = Person(from: dictionary) 

당신이 다른 방법으로가는에 관심이 있다면

다음이 도움이 될 것 https://stackoverflow.com/a/46329055/1453346