SwiftyJson 的初步理解
生活随笔
收集整理的這篇文章主要介紹了
SwiftyJson 的初步理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SwiftyJson 的初步理解
最初的認識 SwiftyJson 的本質就是一個 Public Struct JSON結構體
Struct JSON 的構成
3 - Set 我的初步認識 沒有對其他的重載方法分析 只對整體的做個大致的介紹 初始化方法的時候 設置object 屬性的值 在開始初始化的時候 最先開始的是 初始化懶加載的屬性 然后再對 object 屬性 做set 賦值 賦值的時候。實現了unwrap(newValue)這個遞歸的方法 推導出json的所有基礎類型 并且返回的是JSon初始化后的結構體 大概是這樣的 我最喜歡的就是unwrap(newValue) 遞歸的設置思路 很佩服作者
JSON{JSON{JSoN } }一個一個的JSON結構體組成
4 Get值的時候 對下標進行了重載 可傳遞多個參數的 和 傳遞數組【】
可傳遞多個參數的重載 public subscript(path: JSONSubscriptType...) -> JSON {get {return self[path]}set {self[path] = newValue}} 傳遞數組的重載 public subscript(path: [JSONSubscriptType]) -> JSON {get {return path.reduce(self) { $0[sub: $1] }}set {switch path.count {case 0:returncase 1:self[sub:path[0]].object = newValue.objectdefault:var aPath = pathaPath.remove(at: 0)var nextJSON = self[sub: path[0]]nextJSON[aPath] = newValueself[sub: path[0]] = nextJSON}}} 傳遞 一個參數的重載 這個參數是 需要實現 JSONSubscriptType 本上我們都只是會用到 string 和 Int 作者已經幫我們把對 String 和 Int 做了擴展 public enum JSONKey {case index(Int)case key(String)}public protocol JSONSubscriptType {var jsonKey: JSONKey { get }}extension Int: JSONSubscriptType {public var jsonKey: JSONKey {return JSONKey.index(self)}}extension String: JSONSubscriptType {public var jsonKey: JSONKey {return JSONKey.key(self)}} // 傳遞 一個參數的重載 fileprivate subscript(sub sub: JSONSubscriptType) -> JSON {get {switch sub.jsonKey {case .index(let index): return self[index: index]case .key(let key): return self[key: key]}}set {switch sub.jsonKey {case .index(let index): self[index: index] = newValuecase .key(let key): self[key: key] = newValue}}}總結
以上是生活随笔為你收集整理的SwiftyJson 的初步理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机文化基础作品ppt,计算机文化基础
- 下一篇: Word VBA自动排版(4)- 通过F