iOS开发专题

高仿映客之二怎样打造继承基类

2017-05-04  本文已影响114人  摸着石头过河_崖边树

不管是Model/View/ViewController,这些类都会经常用到一种继承方式,继承基类是我们在创建类的时候最常用的方式,但是你真的知道他是怎么用的吗?你真的知道怎样合理的利用OC的这个继承特性吗?

映客源码下载地址:高仿映客项目源码
映客系列详细解说目录:映客系列详细解说目录

自定义基类控制器###

下面老夫就结合高仿映客项目谈谈怎样制作我们项目需要的基类。首先想想我们为什么要继承基类,简单的来说是我们继承基类之后子类就会拥有父类所有的方法、属性、逻辑等,高仿映客中考虑到我们常用UINavigationController、UITabBarController、UIViewController,所以本项目为了扩展方便,都不是直接使用这些类,而是使用它们的子类

控制器基类.png控制器基类.png

同时我们考虑到控制器的导航条有时候会加一些额外的东西,所以一般情况下我们都要自定义,但是我建议自定义方法是 : 隐藏系统导航条,增加自定义的导航条,这样不仅具备侧滑返回的手势效果,还实现了导航条的自定义


自定义控制器结构.png自定义控制器结构.png

在自定义的控制器BaseVC中可以暴露子类方法

 /**
   *  添加左按钮事件响应
   *
   *  @param selector
   */
- (void)addLeftButtonSelector:(SEL)selector;
/**
  *  添加右按钮事件响应
  *
  *  @param selector
  */
- (void)addRightButtonSelector:(SEL)selector;

自定义基类模型###

我们新建一个模型类,默认都是继承于NSObject,但是一般模型都会和数据解析产生关联,所以模型类根据功能又可以分为基础模型类、数据管理模型基类、router路由器管理基类、数据存储模型基类


model基类.pngmodel基类.png

基础模型类功能:

/**
 *  模型转化为字典
 */
- (NSDictionary *)modelToDictionary;
 /**
  *  字典转化模型 (属性值一一对应)
  */
+ (NSDictionary *)JSONKeyPathsByPropertyKey;

数据管理模型基类功能:
单例实例化管理类,并且可以增加代理监听

 /**
  *  增加代理监听对象
  */
- (void)addDelegateObject:(id)delegate;
/**
 *  移除代理监听对象
 */
- (void)removeDelegateObject:(id)delegate;
/**
 *  管理基类,代理回调
 *
 *  @param aSelector         代理回调方法
 *  @param anArgument        参数1
 *  @param anotherAnArgument 参数2
 */
- (void)delegateDataMangerCallBackSelector:(SEL)aSelector withObject:(id)anArgument withAnotherObject:(id)anotherAnArgument;

router路由器管理基类功能:
实现页面的跳转

数据存储模型基类功能:继承于基类模型类
并增加数据库存储功能

 /**
  *  保存模型到数据库
  */
- (void)sql_saveToDataBase;
/**
 *  删除模型到数据库
 */
- (void)sql_deleteToDataBase;
/**
 *  更新模型到数据库
 */
- (void)sql_updateToDataBase;

自定义基类View###

UI层面的基类就不做过多的介绍比较简单。

更多高仿映客项目解说:
映客源码下载地址:高仿映客项目源码
映客系列详细解说目录:映客系列详细解说目录

最后赠言###

我们团队一直想做一个IT技术资料共享平台,希望能帮助更多的朋友了解和学习IT技术,我们不仅提供学习视频、资料共享、而且还提供项目资源、小功能实现demo并定期推送IT行业资讯等,如果您有什么好的项目也可以发布在我们的平台,欢迎您的加入。

上一篇 下一篇

猜你喜欢

热点阅读