iOS 的动态性

作者: iOS猿_员 | 来源:发表于2019-01-27 16:07 被阅读51次

    原文:iOS面试题大全

    iOS 的动态性来自三个方面:动态类型、动态绑定、动态载入、SEL
    类型
    ①、动态类型<弱类型>(id):在代码的运行阶段判断代码的类型,
    使用 id 类型可以让应用在“运行时”使用任何类型来替换。动态类
    型让程序更加灵活,但是会使数据的统一性降低和代码的可读性。我
    们常用静态类型<强类型>(如 NSString) ,使用静态类型编译器可以完
    全分析你的代码,这让代码的性能和可预知性更高。

    ②、动态绑定:让代码在运行时判断需要调用什么方法,而不是在编
    译时。 动态类型和动态绑定使得选择哪个接收者已经调用什么方法
    都放到运行时去完成。

    ③、动态载入:应用程序可以根据需要加载可执行代码以及资源,而
    不是在启动时就加载所有资源。

    ④、SEL 类型 iOS 在编译的时候会根据方法的名字(包括参数序列),
    生成一个用来区分这个方法的唯一的 ID,这个 ID 是 SEL 类型的,SEL
    的本质就是类方法的编号[函数地址]。 (类似 C 语言里面的函数指针,
    但是 OC 的类不能直接使用函数指针,这样只能做一个@selector 语
    法来取。注意:@selector 是查找当前类(含子类)的方法。)

    相关文章

      网友评论

        本文标题:iOS 的动态性

        本文链接:https://www.haomeiwen.com/subject/altnjqtx.html