swift structキーワード置換CodingKey


#####問題シーンの開発中によくモデル属性名とシステム属性名が衝突するので、交換する必要はありません.class類の置き換えはよく知られていると思いますが、structのkeyの置き換えや踏んだ穴を紹介します.サンプルコードは次のとおりです.
///rows            
struct GJ_CrawlerModel: Codable {
    var records:Int? //       
    var page:Int? //     
    var sord:String? //  
    var total:Int? //    
    var gj_rows:[gj_data]? //    

    ///   Codingkey              
    enum CodingKeys:String, CodingKey{
        case gj_rows = "rows"
        case records
        case page 
        case sord
        case total
    }
}

struct gj_data:Codable{
     var test:String? //      
 }


###説明
  • モデルのデータにおけるrows属性とシステムのrows属性との衝突
  • 衝突属性をカスタム属性
  • に変更する.
  • 列挙された方法を使用してCodingkeyを継承しstructのすべての属性をすべて繰り返して書く必要があり、カスタムキーワードを競合キーワード
  • に対応する.
  • decoder jsonデータ付与
  • 問題解決
    モデル付与比較ピットの場所はswiftデータ型が間違っているとモデル全体がnilになることです.解決策は、実際のjsonデータに基づいて各属性のタイプが正しいかどうか、タイプが不確定なときに属性を注釈してから1つずつ離すnilが現れると対応する属性タイプが正しくない.