寫這個的目的完全是出於加深自己的執行時字典轉模型的理解,如果你的專案比較小,或者你希望自己搭一個架子,那麼這就是一個很好的例子,你可以在它的基礎上不斷完善。demo
見GitHub-TFQNetwork
一、簡單說一下用法:
- 把
TFQNetwork
檔案拖到專案中。 - 建立接收模型,參考
TFQModel
。 - 匯入標頭檔案
#import "TFQBaseRequest.h"
,之後呼叫類方法postXXX
進行請求即可。
二、方法說明
重點解釋一下下邊兩個方法
getClassWithPropertyName
:如果字典套字典,那麼裡邊的字典就需要一個新模型來接收,這時候就需要這個方法來返回對應的類。
getServerNameFromAppPropertyName
:針對後臺定義的欄位你不喜歡的情況,如果你在model
裡定義的欄位跟服務端的不一樣,你就參考TFQModel
寫此方法。欄位名字一樣就可以無視該方法。
/**
如果字典裡邊包含陣列或者字典,那麼就需要建立一個類來接收它
@param propertyName server返回欄位
@return app對應的類
*/
- (Class)getClassWithPropertyName:(NSString *)propertyName;
/**
把後臺欄位轉換為自己想要的欄位
@param propertyName app定義的欄位
@return server定義的欄位
*/
- (NSString *)getServerNameFromAppPropertyName:(NSString *)propertyName;
複製程式碼
三、這是對字串的解析結果,請求地址、引數、結果,一目瞭然。
NSString *str1 = @"{\"name\":\"zhangsan\",\"ag\":23,\"girlArray\":[1,2,3],\"subModel\":{\"subName\":\"subZhangsan\"}}";
複製程式碼
2018-07-18 14:46:07.350004+0800 TFQNetwork[5735:168523] 請求地址為:https://juejin.im/timeline
2018-07-18 14:46:07.350238+0800 TFQNetwork[5735:168523] 請求引數為:{
age = 12;
name = zhangsan;
userName = 1234;
userid = 110918;
}
2018-07-18 14:46:07.489526+0800 TFQNetwork[5735:168523] 返回結果為:{"name":"zhangsan","ag":23,"girlArray":[1,2,3],"subModel":{"subName":"subZhangsan"}}
複製程式碼