架构 学习

第三层:ASI、AF或者其他网络请求方式。

第二层:第二层分有基类与类目(Category)构成,基类用于配置共有参数与发起请求,分类则是为了团队开发与结构清晰。

第一层:即应用层,比如一个登录、注册操作,需要从界面上获得参数,并配置回调。



二  业务层比较清晰  [AFNetworkingAPIcallApiWithParam:self.paramsuccessed:^(Response*response){if([self.delegaterespondsToSelector:@selector(successWithResponse:)]){[self.delegatesuccessedWithResponse:response];}}failed:^(Request*request,NSError*error){if([self.delegaterespondsToSelector:@selector(failedWithResponse:)]){[selffailedWithRequest:requesterror:error];}}];

通过Notification的方式交付数据。正常情况下应该是避免使用Block的。

离散型API调用方式:

当一个页面的请求正在天上飞的时候,用户等了好久不耐烦了,小手点了个back,然后ViewController被pop被回收。此时请求的着陆点就没了。这是很危险的情况,着陆点要是没了,就很容易crash的。一般来说处理这个情况都是在dealloc的时候取消当前页面所有的请求。如果是集约型的API调用,这个代码就要写到ViewController的dealloc里面,但如果是离散型的API调用,这个代码写到APIManager里面就可以了,然后随着ViewController的回收进程,APIManager也会被跟着回收,这部分代码就得到了调用的机会。这样业务方在使用的时候就可以不必关心着陆点消失的情况了,从而更加关注业务。




View架

不要在viewDidLoad里面初始化你的view然后再add,这样代码就很难看。在viewDidload里面只做addSubview的事情,然后在viewWillAppear里面做布局的事情(勘误1),最后在viewDidAppear里面做Notification的监听之类的事情。至于属性的初始化,则交给getter去做。

塘桥

先是life cycle,然后是Delegate方法实现,然后是event response,然后才是getters and setters。这样后来者阅读代码时就能省力很多。


Autolayout

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

推荐阅读更多精彩内容