MVC(要显示很多很多内容)
大略的讲,作为一个iOS程序员来说,首先要了解一个叫做MVC的模式。这个模式定义了Cocoa
Touch框架的总体结构。在iOS程序中,我们也需要按照这种模式进行界面代码的编写。这样设计出来的类具有较好的结构,且比较适合于做单元测试。
view,有重用机制的显示功能的视图
dataSource:用于获取显示的数据
delegate:时间点,询问
重用队列。
model,
本地
文件读写(大文件读写要考虑用多线程处理,避免UI卡主)
数据库(增删改查)
coreData
nsuserdefault
网络
http (如何进行多个异步请求)
只有发请求,才会返回数据。
请求:(header file 用来描述所传送的信息)
get,显示发送信息,所有参数都拼接到url上,大小有限制255字节
post,隐式发送信息,所有信息放到body中传送
连结:
同步:接受的数据(data),回应,错误同时。
异步:通过多线程来处理
收到错误
收到回应本质就是header file 用来描述下面数据
收到部分数据:拼接收到数据
完成:对数据进行处理。
解析:
JSON:系统ios5,SBJOSN(nsstring的类目)(返回类型数组或字典);
xml:xmlReader(系统原生,直接返回字典),GData的XPath
socket:时时通讯
TCP:有连接,在连接上以后,发送信息可靠。
缺点,比较耗资源,
传文件的时候。
UDP:无连接,不可靠
优点,节省资源,灵活方面
聊天的时候。心跳验证。
controller:协调view和model,处理各种时间点和事件。
关于MVC的面试题:
1、怎么理解MVC,在Cocoa中MVC是怎么实现的?
Model: 代表你的应用程序是什么(不是怎么展现)
Controller:
控制你的Model怎么展现给用户(UI逻辑)
View: Controller的奴隶。。。
View: Controller的奴隶。。。
Model,Controller,View相互通讯的规则:
- Controller可以直接和Model通信
- Controller也可以直接和View通信
- Model和View永远不能直接通信
- iOS中View和Controller的通信是透明和固定的,主要通过outlet和action实现
- View使用Delegate接口和Controller同步信息
- View不直接和数据通信,使用dataSource接口从Controller处获取数据
- View的delegate和dataSource一般就是Controller
- Controller负责为View翻译和格式化Model的数据
- Model使用Notification & KVO的方式分发数据更新信息,Controller可以有选择的监听自己感兴趣的信息。
- View也可以监听广播信息,但一般不是Model发出的信息
- 一个完整的App就是很多MVC的集合