关于iOS的介绍就不用讲了。这个随便去搜一下也有一大堆说的,我们先从iOS的系统层次开始说起:
从上到下iOS分为4层:
1、Core OS:该层主要包含一些操作系统的内核、文件系统、安全性、证书之类的,一般我们很少接触该层。
2、Core Services:该层主要包含跟网络相关的东西,还有数据库、线程、电话簿、网络服务等,该层为核心服务层。
3、Media:看到这名字也知道,该层主要是跟多媒体相关的,包含视频、音频、图片、pdf、OpenAL、OpenGL等。
4、Cocoa Touch:该层为操作系统的最顶层,该层包含了构建iOS程序的关键framework,还有多任务啊、标准的view controller啊等等。
学习iOS开发,需要知道开发iOS程序需要使用的常识性东西:
1、开发工具:XCode,Instruments。
Instruments 是应用程序用来动态跟踪和分析 Mac OS X 和 iOS 代码的实用工具。这是一个灵活而强大的工具,它让你可以跟踪一个或多个进程,并检查收集的数据。这样,Instruments 可以帮你更好的理解应用程序和操作系统的行为。
2、开发语言:Objective-c;
3、主要框架:Foundation、UIKit;
4、设计模式:MVC。
关于iOS中的MVC模式:
MVC成员:Model、View、Controller。
Model:你的程序是什么(并不是你如何展示出来);
Controller:你的Model如何展现给用户(UI逻辑);
View:Controller的仆人,展示Controller想展示的东西。
然后来理解MVC之间的通信:
在IOS的MVC模式当中,Controller占中心地位,从图中可以看出MVC三个成员之间互相是怎么通信的。
①Controller在任何时候都可以直接跟Model进行通信;
②Controller也可以直接跟View进行通信;
③Model和View之间相互不能通信;
④View如何跟Controller进行通信?
Controller在其本身放置一个target,然后在View上放一个action,当UI发生变化的时候,View就发送这个action。
有时候,View需要跟Controller进行同步,Controller就把自己设置为View一个delegate(委托),这样就可以执行Controller里的should、will、did等同步函数了。
View对自己展示的数据没有拥有权,即View是不拥有数据的。如果有需要的时候,他们会通过一个协议来要求。
Controller几乎永远都是那个数据源(不是Model);
⑤Controller为View解释或者格式化Model的信息。
⑥Model是UI无关的。
如果Model有信息要更新,Model会使用像广播机制一样的"radio station",来通知Controller,然后有必要的话,Controller会去通知View进行相应的操作。