swift離散型網絡框架利用extension加泛型

	OC見過離散型網絡框架,項目用過後覺得不錯不同業務擴展起來挺方便。但是最近這個項目中用的是集約型的,裏面邏輯代碼感覺比較冗餘。但是迭代很久的項目又不能輕易動。
	剛好組員對Swift和組件化感興趣。所以就萌發了自已寫一個Swift離散型網絡框架,然後給組員分享一波Swift和架構思想。

	先來看一張前期思維導圖

在這裏插入圖片描述

	整個項目基於Swift(開始4.2半個月前出了5.0也兼容) Alamofire  HandyJSON。
	Swift出來5.0 HandyJSON庫出了點問題,升級了HandyJSON)
	錯誤:(Xcode10.2, swift5.0)
	HandyJSON.Metadata.Class Xcode10.2, swift5.0 報錯 linker command failed with exit code 1
	Undefined symbols for architecture x86_64:
	"_swift_getFieldAt", referenced from:
	解決方案見鏈接:(https://www.cnblogs.com/sundaysme/p/10615292.html)
	框架成型探討:
	最開始的時候是想利用Swift的extension做網絡配置擴展。但是發現Swift3.0到4.0對extension不能夠重寫(@objc除外),而且Swift沒有NSObject這種基類,實現業務api分離需要model都繼承它對我的模型不太友好等原因放棄了。後面想到了protocol,想利用面向協議編程。但是Swift沒有可選協議,這對我們擴展肯定是不行,然後用了extension實現可選(@objc除外)。網路配置ok了,但是在網絡方法封裝裏我利用了範型建模再加protocol,extension加protocol,邏輯都寫完。但是編譯存在一些self語法問題,導致擱淺。(個人覺得主要在限定類型上卡住)。OC 裏面可以利用Category + YYModel不用範型也可建模。Swift建模用的HandyJSON(內存賦值映射等建模原理可以瞭解下)
	最後參考了一篇博客,利用範型類才實現了網絡配置和網絡請求方法配合達到離散型網絡框架。博客地址後期補上
	完整性網絡框架構思需要後面逐步完善大概框架如下:
	![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20190404132510160.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FzaWFfWmhhbmdRUQ==,size_16,color_FFFFFF,t_70)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章