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