Cocoa编程学习笔记之MVC
Cocoa 使用了一种修改版本的MVC模式来处理GUI的显示。MVC模式(自1979年以来)已经出现很长时间了,它皆在分离显示用户界面所需的大量任务,并处理用户交互。正如名称所蕴含的,MVC具有三个主要部分,Model(模型)、View(视图)和Controller(控制器):
模型——模型是特定于领域的数据表现形式。比如说,我们正在创建一个任务列表应用程序。你可能会有一个Task对象的集合,书写为List。 你或许把这些数据保存在数据库、XML文件,或者甚至从Web Service中得到,不过MVC不那么关心它们是在何处/如何来持久保存的(乃至它们是什么)。相反,它特别专注于如何显示这些数据,并处理与用户交互的,好的模型类不包括任何有关用户界面的内容,可以在多个应用程序中使用。
视图——视图代表了数据如何实际地显示出来。在我们这个假设的任务应用程序中,会在一个网页(以HTML的方式)中来显示这些任务,也会在一个WPF页面中(以XAML的方式)来显示,或者在一个iPhone应用程序中显示为UITableView 。如果用户点击某个任务,要删除之,那么视图通常会触发一个事件,或对Controller(控制器)进行一个回调,好的视图类是通用类,可以在多个应用中使用。
控制器——控制器是模型和视图间的粘合剂,负责控制整个应用的流程。控制器的目的就是获取模型中的数据,告知视图来显示。控制器还侦听着视图的事件,在用户选中一个任务来删除的时候,控制着任务从模型中删除。
通过分离显示数据、持久化数据和处理用户交互的职责,MVC模式有助于创建易于理解的代码。而且,它促进了视图和模型的解耦,以便模型能被重用。例如,在你的应用程序中,有两个界面,基于Web的和WPF的,那么你可以在两者中都使用同样的模型定义代码。
因而,在很多MVC框架中不管具体的工作方式如何,基本原理都大致如此的。然而,在Cocoa(及Cocoa Touch)中,还是或多或少有所不同,苹果用MVC来代表Views(视图)、View Controller(视图控制器)和Models(模型);但是在不同的控件中,它们却不是完全一致的,实现的方式也不太一样。
在Objective-C/Cocoa的世界里,我们建立的controller通常是指应用程序(Application)的委托(Delegate),或者可以简单称做app delegate。当你在Objective-C里面建立一个app delegate的时候,这个delegate可以做为你所有model和view的controller,或者你也可以为不同的model和view分别创建controller。
本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
间谍软件公司悬赏100万美元征求 iOS 9漏洞
安全初创企业 Zerodium 宣布一个前所未有的史上最大的漏洞奖励:100万美元征求一个基于浏览器的 iOS 9 漏洞。 Zerodium是一家以零日漏洞交易厂商,其创始人 Chaouki Bekrar 一直从事于零日漏洞行业,除了新创立的Zerodium之外,他还是法国黑客公司Vupen的创始人,Vupen是一家研究流行软件的入侵技术,并将其售卖给全世界的政府机构。 Zerodium不只提供这100万的单一奖项,还准备了达300万美元的 iOS 9 的漏洞奖金。但这些奖金的发放有时间限制,漏洞研究人员需要是万圣节(10月31日)下午6点之前提交漏洞。 “iOS 9 是当今最安全的移动操作系统,想要开发出漏洞利用程序来绕过种种安全设置非常的困难。因此,我们认为只有100万美元才能激发许多天才研究人员接收挑战。” 从奖金设置来看,Zerodium的100万美元是史无前例的。目前的漏洞奖励平均只有200美元,最大的单个漏洞奖励是谷歌Chrome漏洞,11万美元。被一名韩国安全研究人员 JungHoon Lee 获取。 Zerodium于今年7月创办,是一家独立的私人企业。Bekrar表示...
- 下一篇
《企业级ios应用开发实战》一2.5 写一个iPhone程序
2.5 写一个iPhone程序 点击桌面上的Xcode图标,启动Xcode。选择菜单“File→New Project”,显示新建项目模板向导(如图2-16所示)。 在左边栏中列出了Xcode支持的两种项目类型:iOS和Mac OS X项目,选择iOS下方的Application,然后选择Empty Application类型的项目。点击Next按钮,进入新项目设置界面,如图2-17所示。 在新项目设置界面中,在Product Name栏填写项目名称,比如My_First_iPhone_App。在Company Identifier栏,填写公司名前缀,比如com.ydtf。在Device Family栏填写所开发目标平台,比如iPhone(Universal则表示iPhone/iPad“二合一”版本)。然后点击Next按钮。接下来是指定项目保存路径界面,如图2-18所示。 选择一个合适的项目保存路径,然后点击Create按钮。这样,一个iPhone应用程序就创建好了。如图2-19所示是My_First_iPhone_App项目的项目编辑界面,由于图太大,这里只显示了窗口的一部分。 界面...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长