原文:iOS面试题大全
iOS 的动态性来自三个方面:动态类型、动态绑定、动态载入、SEL
类型
①、动态类型<弱类型>(id):在代码的运行阶段判断代码的类型,
使用 id 类型可以让应用在“运行时”使用任何类型来替换。动态类
型让程序更加灵活,但是会使数据的统一性降低和代码的可读性。我
们常用静态类型<强类型>(如 NSString) ,使用静态类型编译器可以完
全分析你的代码,这让代码的性能和可预知性更高。
②、动态绑定:让代码在运行时判断需要调用什么方法,而不是在编
译时。 动态类型和动态绑定使得选择哪个接收者已经调用什么方法
都放到运行时去完成。
③、动态载入:应用程序可以根据需要加载可执行代码以及资源,而
不是在启动时就加载所有资源。
④、SEL 类型 iOS 在编译的时候会根据方法的名字(包括参数序列),
生成一个用来区分这个方法的唯一的 ID,这个 ID 是 SEL 类型的,SEL
的本质就是类方法的编号[函数地址]。 (类似 C 语言里面的函数指针,
但是 OC 的类不能直接使用函数指针,这样只能做一个@selector 语
法来取。注意:@selector 是查找当前类(含子类)的方法。)
网友评论