1. 带参宏与函数的区别:
1>宏是预处理,函数是c语句。
2>宏是简单的替换,函数是调用。
3>宏的参数没有类型,也不做参数类型的检查;而函数有严格要求的参数类型匹配。
4>宏使代码体积变大;而函数不会。
5>宏的执行效率高于函数。
6>宏只是简单的替换,不能递归调用。
2. nil 与 NULL 的不同
NULL 是0地址,因为是void * 类型,可对任意类型指针进行赋值:char *p = NULL; int *t = NULL;
Nil 是空对象,可对任意类型的对象指针进行赋值:UIButton *button = nil; NSString *str = nil;
3. OC都是单继承(可通过OC协议获得类似多继承的效果)
OC没有私有方法,其所有方法都是共有的。
如何实现OC私有方法:在头文件不声明,通过在类的实现文件中写一个匿名类别,在匿名类别中进行声明,这样的话类外就看不到类中的方法,从而相当于私有,但并非是真正的私有。
4. 内存管理原则(黄金法则):
使用alloc、retain、new、copy、mutableCopy开头的方法把对象地址赋给一个新的指针变量,当这个新的指针变量用完后就可以release或者autorelease,但是在release之后的指针将不能再操作原有对象了。