iOS的动态性

  1. iOS的动态性来自三个方面:动态类型、动态绑定、动态载入、SEL类型 

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


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


3、动态载入:应用程序可以根据需要加载可执行代码以及资源,而不是    

      在启动时就加载所有资源。


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值