苹果桌面系统采用的策略,就是创建一种模块化、自包含的应用程序,这种应用程序仅由其自身内部的文件资源构成。
1.1 应用程序剖析
Mac OS X 的前身,NeXT系统,它将应用程序视为一个目录所构成的束。束这个概念引入了一种方法,可以聚合应用程序资源、二进制文件和其他相关文件。
应用程序运行所需的一切都必须包含在自身的目录结构内。(沙盒)应用程序并不知道自己的安装位置,每次安装时,都会有一个唯一标识被添加到你的应用程序的路径中。(NSHomeDirectory)
应用程序的结构:
Documents
一个专用文件夹,存储用户创建的文档。
library
存储程序安装后穿件的配置和其他资源
1.2 消息机制
在Objective-c中,是通过向他们所属的对象发送消息来实现调用的。
和c语言不同的是:C的函数调用必须是预定义的,而Objective-c 的消息传递方式则允许开发者在运行时动态的创建新的方法和消息,或者对一个对象进行测试,看它是否对特定的消息作出响应。
预处理指令#import
使用#import的一个好处是他有一种内建的逻辑,可以确保同一个资源被包含的次数绝对不会多于一次。
协议
协议是一组商定的方法,一个对象实现了这些方法就可以与其他某些对象通信。代理协议使用来通知某个对象在另一个对象中发生了一些事件
类别
在不改变元类的基础上,扩展一些方法