iOS层次架构:
Cocoa Touch->Media->Core services ->Core OS
Cocoa Touch:创建IOS应用程序所需的关键框架
Media:图形技术 音频技术 和视频技术
Core Services:提供基础系统服务
Core OS:底层功能是很多其它技术的构建基础 通常情况下这些功能不会直接应用于应用程序
而是应用于其它框架
在编写代码时 应当尽可能地使用高层框架而不要使用底层框架 高层框架为底层框架构造提供面向对象地抽象
这些抽象可以减少需编写的代码行数 同时还对诸如Socket和线程这些复杂功能进行封装
从而让编写代码变得更加容易 虽说高层框架是对底层构造进行抽象 但是它并没有底层技术屏蔽起来
如果高层框架没有为底层框架的某些功能提供接口 开发者可以直接使用底层框架
由于Object-C的动态类型特征 Object-C不能对方法进行内联一类的优化 使得Object-C的应用程序比C或C++程序更小
由于Object-C使用动态运行时类型 而且所有的方法都是函数调用 很多常见的编译时性能优化方法都不能用于
Objective-C 例如内联函数 常数传播 交互式优化 纯量取代 和聚集等 这使得Objective-C性能劣于类似的对象抽象语言
Objective—C属性特性:
assign:指定setter 方法简单负值 不更改索引计数 使用assign 对基础数据类型和C数据类型
retain:释放旧的对象 将就对象的负值输入对象 再提高输入对象的索引计数为1 使用retain
对其它NS Object和其子类 retain说明属性再负值的时候 先release之前的值再赋新值给属性 引用再加1
copy:基本上像retain但没有增加引用计数
readonly:将生成getter方法而不是生成setter方法
readwrite:默认属性 将生成不带额外参数的getter 和setter方法
atomic:对于对象的默认属性 就是setter/getter生成的方法是一个院子操作
nonatomic:不保证setter/getter的院子行 多线程情况下数据可能会有问题
Objective-c 种所有释放都必须写在[super dealloc]的前面
- (void)dealloc
{
}
-------正确的写法--------
- (void)dealloc
{
}