【IOS 开发学习总结-OC-39】★★ios开发之 MVC 模式

来源:互联网 发布:andrew marc牌子知乎 编辑:程序博客网 时间:2024/04/30 12:50

MVC——Mode(模型),View(视图),controller(控制器)这三部分以最小的耦合协同工作,提高应用的可扩展性和可维护性。MVC是所有面向对象程序设计语言都应该遵守的规范。

经典的 MVC 模式

经典的 mvc模式中,事件由控制器处理,控制器根据事件的类型改变模型或视图,反之也是如此。——详细的说就是:每个模型对应一系列的视图列表,这种对应关系通常通过注册来完成——把多个视图注册到同一个模型),模型发生改变时,模型向所有注册过的视图发送通知,然后,视图从对应的模型中获取嘻嘻,完成视图显示的更新。
MVC模式示意图:
这里写图片描述

IOS 中 MVC细解:

  • model 组件:通常是一些普通的类。这些类可保存少量应用程序状态数据。——当应用程序状态数据较多时,可以考虑用 core data构建数据模型。
  • 视图组件:主要使用 interface builder 创建视图组件。——某些情况下,可用代码创建,修改界面和扩展视图控件。
  • 控制器组件:通常由程序开发者自己开发的类来充当。大部分时候,控制器组件都会继承 UIViewController 基类,通过继承它,可让控制器类获取大量功能。

UIViewController控制器

UIViewController类包含如下常见的需要重写的方法:
1. - (void)viewDidLoad:——控制器管理的视图被装载完成后,系统自动调用该方法。注意:重写该方法时,记得用[super viewDidLoad]; 代码调用UIViewController基类的viewDidLoad方法。
2. - (void)didReceiveMemoryWarning——该方法不需程序员自己调用。如果需要在系统内存紧张时释放部分内存,可通过重写该方法来释放那些暂时不用的内存。——重写时不要忘记通过[super didReceiveMemoryWarning]方法。
3. - (void)viewWillAppear:(BOOL)animated——视图要显示出来时,系统自动调用该方法;重写该方法的格式注意点看下面的重要说明。
4. - (void)viewDidAppear:(BOOL)animated——视图显示出来后,自动调用该方法。重写该方法的格式注意点看下面的重要说明。
5. - (void)viewWillDisappear:(BOOL)animated——当控制器管理的视图将要隐藏或被移出窗口时,系统自动调用该方法。重写该方法的格式注意点看下面的重要说明。
6. - (void)viewDidDisappear:(BOOL)animated——当控制器管理的视图已经隐藏或被移出窗口时,系统自动调用该方法。重写该方法的格式注意点看下面的重要说明。
7. - (void)viewWillLayoutSubviews——当控制器管理的视图将要排列它包含 的所有子视图时,系统自动调用该方法。重写该方法的格式注意点看下面的重要说明。
8. - (void)viewDidLayoutSubviews——当控制器管理的视图已经排列它包含 的所有子视图时,系统自动调用该方法。重写该方法的格式注意点看下面的重要说明。

重要说明:

上面关于UIViewController类的要重写的方法。要注意的是:重写方法的时候不要忘了通过[super xxxxx:YES];的代码格式调用UIViewController基类的相关方法。其中xxxxx是指该方法的方法名。

MVC 模式与观察者模式的区别

它们2者很相似,但是有着这样的区别:
观察者模式下,观察者和被观察者可以是两个互相对等的对象。但对 MVC思想(模式)而言,被观察者往往只是单纯的数据体,而观察者则是单纯的视图组件。

0 0