[Swift] Alamofire + Unbox + Realm が無かったので作ってみました。
作ろうと思った背景
私はいつもAPIなどで取得したJSONを変換するときに Unbox にお世話になっています。
毎回毎回トランスファーなど作らなくても良いようにしたかったのでとりあえず作ってみました。
いつも利用しているライブラリ
Networking : Alamofire
Decoder : Unbox
Database : Realm
インスパイアー
UnboxedAlamofire
AlamofireからUnboxに変換を楽にするのはすでに作ってくれている人がいた!!
今回作ったライブラリ
名前の通り、Realm だけのためではなく、Unbox からCustomObjectに変換できるようになっています。
どんな値にも受け渡せるのでちょっと便利かも?
サンプルコード
Model
class Candy: Object, CustomUnboxed {
dynamic var name: String = ""
dynamic var sweetnessLevel: Int = 0
static func custom(unboxer: Unboxer) throws -> CustomUnboxed {
let candy: Candy = Candy()
candy.name = try unboxer.unbox(key: "name")
candy.sweetnessLevel = try unboxer.unbox(key: "sweetness_level")
return candy
}
}
Logic
let url = "https://raw.githubusercontent.com/serejahh/UnboxedAlamofire/890674cdfdcf2424f2c45ff5f4af455ccfaf7617/UnboxedAlamofireTests/fixtures/test_object.json"
Alamofire.request(url).responseObject { (response: DataResponse<Candy>) in
if let candy: Candy = response.result.value {
debugPrint(candy)
}
}
それっぽく動いているみたいですが、もし何かあれば CustomUnboxedAlamofire こちらでご報告ください。
対応できそうでしたら対応します。
気にしちゃいけないこと
Realm Docs Json
Json to Realm ができるみたいなのですが。。。
個人的には今回の方が Realm だけではなく他のものにも変換できるので好きかもですw
Author And Source
この問題について([Swift] Alamofire + Unbox + Realm が無かったので作ってみました。), 我々は、より多くの情報をここで見つけました https://qiita.com/shun_nakahara/items/7c09c811885c838cbef6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .