千家信息网

怎么解析iPhone中的MVC框架设计模式

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,怎么解析iPhone中的MVC框架设计模式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。整理自斯坦福大学iphone开发公开课,并加
千家信息网最后更新 2025年01月19日怎么解析iPhone中的MVC框架设计模式

怎么解析iPhone中的MVC框架设计模式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

整理自斯坦福大学iphone开发公开课,并加入了一些自己的理解。

一、概念

Model = 你的应用程序是什么,是用户界面无关的部分

Controller = 你的应用程序如何将Model显示给用户(UI逻辑),是中心是桥梁,连通Model和View

View = Controller的奴才(minion)、小跟班。view一切听从Controller的指挥,并及时将重要事件报告给Controller

二、通信

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,delegate是一组协议,表示程序将要或者已经处于某种状态时,来调整View,以对用户有个交代。例如系统内存不足了,你是不是相应的降低view的质量以节省内存。

注:突然冒出个delegate,让人不好理解,其实他不对应xcode为我们创建的XXAppDelegate文件,此文件不属于MVC中的任何一部分,虽然与MVC有联系。我发现苹果文档里说A是B的代理的时候,通常是指A中有B的引用,可以A直接操作B。

三、实作

建立一个BtnClick工程系统,会为我们生成以下文件:

BtnClickAppDelegate.h

BtnClickAppDelegate.m

以上两个文件定义了实现UIApplicationDelegate协议的类BtnClicAppDelegate,UIApplicationDelegate协议是系统预定义的协议,负责监视应用程序的高层行为,处理几个关键系统消息,是应用程序生命周期为我们预留的Hook,每个iphone应用程序必不可少的。iphone应用程序的生命周期:

BtnClickViewController.h

BtnClickViewController.m

实现了MVC中的Controller.可以定义一些IBOutlet元素和IBAction方法与View通信。

@interface BtnClickViewController : UIViewController{  IBOutlet UILabel* statusText;  }  @property (retain,nonatomic) UILabel *statusText;  - (IBAction)buttonPressed:(id)sender;  @end

View对应那个文件呢? 答案是Resource下的MainWindow.xib和BtnClickViewController.xib。MainWindow.xib文件在在应用程序加载时是会被自动加载的,这其实是在plist文件中配置的。然后MainWindow.xib会加载子视图BtnClickViewController.xib。

为什么会命名为ViewController,而不是分开命名?可能是因为View和Controller关系太紧密了,view就是Controller的跟班。实际编程时一定要分清MVC各部分的职责。

自始至终没见到Model的面,其实M是可选的,特别是对于简单的应用。任何与界面无关的,我们添加的自定义类来定义我们应用程序的对象,都属于Model的范畴。

关于怎么解析iPhone中的MVC框架设计模式问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

程序 应用 应用程序 文件 用户 系统 通信 问题 框架 模式 设计模式 设计 事件 内存 周期 报告 数据 方法 更多 生命 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 信息网络安全无安全事故 共享工作不更新数据库 国家网络安全法治宣传周主题 安顺网络安全系统价格 qq飞车服务器爆满是怎么回事 爬虫软件需要服务器吗 曹妃甸区专业性软件开发答疑解惑 网络技术课程精品例子 办公室电子文件数据库 租用服务器的安全隐患 电子处方软件开发官方平平台 数据库的单行函数 花瓣邮箱pop服务器 数据库第二版上机答案 新华三服务器部件安装与卸载 网络技术研究一般用什么方法 数据库数据修改时推送数据 三台服务器共用一个显示器 其中模式是对数据库 STM32的软件开发模式及特点 数据库字符型字段是什么 数据库数据交换技术 现成学生选课数据库 网络安全工作培训记录 校外如何使用万德数据库 武汉市网络安全产业 计算机网络安全编程应用 sci收录的期刊数据库 教育资源共享网络安全管理 服务器管理员限制访问了
0