AFNetworking的简易封装,含字典转模型

409 阅读2分钟

写这个的目的完全是出于加深自己的运行时字典转模型的理解,如果你的项目比较小,或者你希望自己搭一个架子,那么这就是一个很好的例子,你可以在它的基础上不断完善。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"}}