RTAPIManagerParamSourceDelegate

/*************************************************************************************************/
/* RTAPIManagerParamSourceDelegate */
/*************************************************************************************************/
//让manager能够获取调用API所需要的数据
@protocol RTAPIManagerParamSourceDelegate <NSObject>
@required

  • (NSDictionary *)paramsForApi:(RTAPIBaseManager *)manager;
    @end

/*
当产品要求返回数据不正确或者为空的时候显示一套UI,请求超时和网络不通的时候显示另一套UI时,使用这个enum来决定使用哪种UI。(安居客PAD就有这样的需求,sigh~)
你不应该在回调数据验证函数里面设置这些值,事实上,在任何派生的子类里面你都不应该自己设置manager的这个状态,baseManager已经帮你搞定了。
强行修改manager的这个状态有可能会造成程序流程的改变,容易造成混乱。
*/
typedef NS_ENUM (NSUInteger, RTAPIManagerErrorType){
RTAPIManagerErrorTypeDefault, //没有产生过API请求,这个是manager的默认状态。
RTAPIManagerErrorTypeSuccess, //API请求成功且返回数据正确,此时manager的数据是可以直接拿来使用的。
RTAPIManagerErrorTypeNoContent, //API请求成功但返回数据不正确。如果回调数据验证函数返回值为NO,manager的状态就会是这个。
RTAPIManagerErrorTypeParamsError, //参数错误,此时manager不会调用API,因为参数验证是在调用API之前做的。
RTAPIManagerErrorTypeTimeout, //请求超时。RTApiProxy设置的是20秒超时,具体超时时间的设置请自己去看RTApiProxy的相关代码。
RTAPIManagerErrorTypeNoNetWork //网络不通。在调用API之前会判断一下当前网络是否通畅,这个也是在调用API之前验证的,和上面超时的状态是有区别的。
};

typedef NS_ENUM (NSUInteger, RTAPIManagerRequestType){
RTAPIManagerRequestTypeGet,
RTAPIManagerRequestTypePost,
RTAPIManagerRequestTypeRestGet,
RTAPIManagerRequestTypeRestPost
};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,864评论 6 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,322评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,380评论 19 139
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 10,652评论 1 23
  • 昨天莫名其妙坐了一天的车。索性在 Kindle 上快速浏览了两本书。一本是宝树的《古老的地球之歌》,还有一本是林沛...
    四无鸡蛋阅读 3,311评论 0 1