iOS的MVC设计模式
来源:互联网 发布:mysql group by limit 编辑:程序博客网 时间:2024/05/01 13:13
对于iOS开发MVC的理解
模型-视图-控制器(Model - View - Controller, MVC)shi Xerox PAR在20世纪80年代为编程语言Smalltalk - 80 发明的一种软件设计模式,至今已广泛用于用户交互应用程序中。在iO开发中的MVC的机制被使用的淋漓尽致,充分理解iOS的MVC,有助于帮我们程序的组织合理性。
模型对象
模型对象封装了应用程序的数据,并定于操控和处理该数据的逻辑和运算。例如,模型对象可能是表示游戏中的角色或地址薄中的联系人。用户在视图层中所进行的创建或修改数据的操作,通过控制器对象传达出去,最终会创建或更新模型对象。模型对象更改时(例如通过网络连接接收到新数据),它通知控制器对象,控制器对象更新相应的视图对象。
视图对象
视图对象是应用程序中用户可以看见的对象。视图对象知道如何将自己绘制出来,并可能对用户的操作做出响应。视图对象的主要目的,就是现实来自应用程序模型对象的数据,并使该数据可被编辑。尽管如此,在MVC应用程序中,视图对象通常与模型对象分离。
在iOS应用程序开发中,所有的空间、窗口等都继承自UIView,对应MVC中的V。UIView及其子类主要负责UI的实现,而UIView所产生的事件都可以采用委托的方式,交给UIViewController实现
控制器对象
在应用程序的一个或多个视图对象和一个或多个模型对象之间,控制器对象充当媒介。控制器对象因此是同步管道程序,通过它,视图对象了解模型对象的更改,反之亦然。控制器对象还可以为应用承租执行设置和协调任务,并管理其他对象的生命周期。
控制器对象解释在视图对象中进行的用户操作,并将心的或更改过的数据传达给模型对象。模型对象更改时,一个控制器对象会将新的模型数据传达给视图对象,以便视图对象可以显示它
对于不同的UIView,有相应的UIViewController,对应MVC中的C。例如在iOS上常用的UITableView,它所对应的Controller就是UITableViewController。
1. Model和View永远不能相互通信,只能通过Controller传递
2.Controller可以直接与Model对话(读写调用Model),Model通过 Notification和KVO机制与Controller间接通信
3.Controller可以直接与View对话,通过outlet,直接操作View,outlet直接对应到View中的控件,View通过action向Controller报告事件的发生(如用户Touch我了)。Controller是View的直接数据源(数据很可能是Controller从Model中取得并经过加工了)。Controller是View的代理(delegate),以同步View与Controller。
数据来源:http://liuzhichao.com/p/1379.html
- iOS 的MVC设计模式
- iOS的MVC设计模式
- iOS 设计模式MVC
- iOS设计模式---MVC
- ios mvc设计模式
- iOS MVC设计模式
- iOS MVC设计模式
- iOS MVC设计模式
- IOS MVC设计模式的理解
- 学习ios MVC设计模式的小结
- IOS平台上的MVC设计模式
- iOS中MVC设计模式的优缺点
- ios MVC设计模式的小结
- iOS中MVC设计模式的优缺点
- IOS设计模式:MVC模式
- iOS设计模式的学习记录 (1) --- 框架模式MVC
- iOS开发设计模式-MVC
- IOS-MVC设计模式深入
- 文件上传 webuploader
- cetos 7 常用命令
- android ListView的使用 (一)
- 在xml中添加array
- Objective-c语言_点语法和@property
- iOS的MVC设计模式
- 字符串匹配算法-KMP
- webstorm11.0.1 phpstorm10.0.1 汉化版 破解版 免费版
- Eclipse打不开,提示: An error has occurred. see the log file解决办法
- php中设置错误报告级别error_reporting()
- 使用JSONObject.fromObject出现的问题
- android ListView的使用 (二)
- ====如何通过捕获异常来防止空指针ANR
- 又拍网数据库架构案例分析