第二章 对C的扩展
2.2
1.#import是GCC编译器提供的,Xcode在编译Objective-C, C和C++程序时都会使用它。#import可保证头文件只被包含一次;
2.Cocoa的组成部分有Foundation和Application Kit(AppKit)框架;
3.Foundation框架处理的是用户界面之下的层(layer)中的特性;
4.”NS”前缀是因为NeXT Software公司;
5.@+”xxx”表示这是Cocoa的NSString, 注意不能用C风格字符串赋给如NSLog()等函数,不然会崩溃;
2.3 布尔类型
1.OC中的BOOL实际上是一种对带符号的字符类型(signed char)的定义(typedef),它使用8位存储空间。YES定义为1,而NO定义为0(使用#define);
2.BOOL赋值时要小心(详看书第10页);
3.不要用BOOL与YES比较(第13页),直接和NO比较则一定安全;
第三章 面向对象编程基础知识
1.讲了很多语法方面,具体看书;
2.OC中不存在真正的私有方法,也无法把某个方法标识为私有方法,从而禁止其他代码调用它,这是OC动态本质的副作用;
第四章 继承
1.好像没有太重要的,到时再看书吧;
2.重写方法时,调用超类方法总是一个不错的选择;
第五章 复合
……
第六章 源文件组织
……
第七章 深入理解Xcode
……
第八章 Foundation Kit快速教程
到用时再看书吧……
第九章 内存管理
9.1 对象生命周期
1.Cocoa采用引用计数来管理内存;
2.当使用alloc, new或者copy消息创建一个对象时,对象的保留计数器值被设为1;
3.增加计数值:retain; 减少计数值:release;
4.当一个对象的的计数值为0时,OC自动向对象发送一条dealloc消息;
5.一定不要直接调用dealloc方法;
6.当用setxxx方法的时候,要先把新的参数retain, 然后把原来的成员release, 再把new赋给old(真麻烦!!!);
9.2 自动释放
1. NSAutoreleasePool和autorelease, 现在已经好像已经不用了,需要再看书吧(第134页);
9.3 Cocoa内存管理规则(重要)
1.规则详情,在另一篇博文(ios分类中)写了;
2.对于临时对象,如果你使用了new, alloc 或copy, 则需要自己安排对象的死亡,用release;如果你使用任何其他方法获得一个对象,则不需要管它;
3.如果你使用