AFNetworking的簡易封裝,含字典轉模型

BetterDays發表於2018-07-18

寫這個的目的完全是出於加深自己的執行時字典轉模型的理解,如果你的專案比較小,或者你希望自己搭一個架子,那麼這就是一個很好的例子,你可以在它的基礎上不斷完善。demoGitHub-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"}}
複製程式碼

相關文章