id是泛类型,可以用来存放各种类型的对象,使用id也就是使用“动态类型”。
动态类型,就是指,对象实际使用的是哪一个类是在执行期间确定的,而非在编译期间。
虽然id类型可以定义任何类型的对象,但是不要滥用,如果能够确定对象数据类型的时候,要使用“静态类型”,“静态类型”是在编译阶段检查错误,而不是在执行阶段。而且“静态类型”程序可读性好。
既然数据类型可以是动态识别,那么方法是否可以动态识别呢?当然也是可以的,这就是“动态绑定”,它是指在执行期间根据“消息”找到要调用的实际方法。
参考资料:《iPhone与iPad开发实战-iOS经典应用剖析》