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的面试题:
一、怎么理解MVC,在Cocoa中MVC是怎么实现的?
Model: 表明你的应用程序是什么(不是怎么展示)
Controller: 控制你的Model怎么展示给用户(UI逻辑)
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的集合