swift structキーワード置換CodingKey
#####問題シーンの開発中によくモデル属性名とシステム属性名が衝突するので、交換する必要はありません.class類の置き換えはよく知られていると思いますが、structのkeyの置き換えや踏んだ穴を紹介します.サンプルコードは次のとおりです.
###説明モデルのデータにおけるrows属性とシステムのrows属性との衝突 衝突属性をカスタム属性 に変更する.列挙された方法を使用してCodingkeyを継承しstructのすべての属性をすべて繰り返して書く必要があり、カスタムキーワードを競合キーワード に対応する. decoder jsonデータ付与 問題解決
モデル付与比較ピットの場所はswiftデータ型が間違っているとモデル全体がnilになることです.解決策は、実際のjsonデータに基づいて各属性のタイプが正しいかどうか、タイプが不確定なときに属性を注釈してから1つずつ離すnilが現れると対応する属性タイプが正しくない.
///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? //
}
###説明
モデル付与比較ピットの場所はswiftデータ型が間違っているとモデル全体がnilになることです.解決策は、実際のjsonデータに基づいて各属性のタイプが正しいかどうか、タイプが不確定なときに属性を注釈してから1つずつ離すnilが現れると対応する属性タイプが正しくない.