swift始めました|struct で変化球を投げてみた。

スポンサーリンク
swift

あまのじゃくなHIKARU APPです。

毎日楽しく忙しくさせてもらい感謝、感謝の毎日です。

swift4.1からstruct + codableでJSONを簡単に扱えるようになり重宝しています。

そんな流れで、最近はstructばかり、

でも、長年使用してきたdictionaryとは違い、変化球を知らないことがわかった。

それなら、変化球を投げてみたい騒動に駆り立てられ、structからdictionaryやqueryパラメータに変換する方法を考えてみた。

それじゃ〜、いってみよう

環境

Xcode 11.3.1

StructからDictionary

struct SomeHow: Codable {
    var a: String = "A"
    var b: String = "B"
    var nineteen: Int = 19
}

let somehow = SomeHow()

// struct to dictionary
let shMirror = Mirror(reflecting: somehow)
let shDic = shMirror.children.reduce([String: Any]()) { var varDict = $0; varDict[$1.label!] = $1.value; return varDict }

Struct から Query String

struct SomeHow: Codable {
    var a: String = "A"
    var b: String = "B"
    var nineteen: Int = 19
}

let somehow = SomeHow()

// struct to query
let shMirror = Mirror(reflecting: somehow)
let shArray = shMirror.children.map{"\($0.label!)=\($0.value)"}
let shQueryString = shArray.joined(separator: "&")

Struct の var name

struct SomeHow: Codable {
    var a: String = "A"
    var b: String = "B"
    var nineteen: Int = 19
}

let somehow = SomeHow()
let shMirror = Mirror(reflecting: somehow)

// struct var name
let shVarName = shMirror.children.map { $0.label! }

今回は、swift + structの三段活用をまとめてみた。
抑えるツボは、let shMirror = Mirror(reflecting: somehow) なところ。

まだまだ奥が深く知らないことばかり
swift 今日も楽しかったです。

日々修行

コメント

タイトルとURLをコピーしました