在item-service模式中处理请求失败

item-server简介

item-service中,界面UI往往是更具服务器返回的数据来创建了,比如直播软件中那些分类信息。所以如果请求失败的话,界面则无法初始化。下面来谈谈对失败的处理。

错误处理流程

一般流程就是,在失败的时候创建一个view加到屏幕上,有一个供点击的按钮等其他信息,点击按钮重新发起请求。

方案

如果每个控制器都重复这个操作,添加视图,处理点击方法等,如果处理该类型问题的控制器一多,将非常繁琐。下面给出我对于这类问题的方案。

  • 首先得确保所有控制器继承于一个跟控制器BaseController
  • 自定义一个view,在失败的时候用来显示,该view和alertview差不多,提供一个show方法,调用该方法加入到keyWindow上。
  • BaseController 提供一个枚举类型属性eg:xxxFull,xxxNavc,xxxTabbar,来控制shouw的frame,子类根据自己的需求,实现其get方法即可
  • BaseController 提供一个公共的show方法,供子类调用,子类在调用show方法的时候,首先会访问一下上一步骤中返回的枚举值,根据该值来指定显示view的fame,创建自定义view,并show.
- (void)show {

  customView = [customView alloc] init];
  if(self.type == xxx)
  customView.frame = xxx;
  [customView show];
}
  • BaseController 处理view的点击动作,并转接到自己提供的一个公共方法中,如- (void)customErrorViewClick(BaseController中的为一个空的实现),子类重载该方法,进行对应逻辑的处理

该父类的设计可以看出,封装了view的创建和显示,并回调相应动作给子类。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容