首先需要明确的一点是,什么是编译型语言和解释性语言

编译型语言,就是在其执行过程中需要先将其经过编译成机器码来给计算机识别的,其执行效率就会比较高这个是显而易见的,常见比如:C、C++

而解释型语言,是不用编译这个过程的,只是在执行时通过相应的翻译器(虚拟机)逐行翻译。这样它的跨平台性就会较好,因为可以直接通过编译器编译成需要的平台上的语言,但是有一个问题就是:它每次运行都要讲每行代码逐行解释翻译一遍。常见比如:Python、JS、PHP

由此可见,我们的OC和Swift都是需要先进行编译后才能执行代码功能的,因此他们都是编译型语言。

接着谈的就是OC和swift的其中一个不同,那就是Swift它是一个动态类型语言,意思是他是在代码执行时才去做数据类型的检查,使用了swift的童鞋应该都清除,swift中变量的类型声明都是使用Var关键字的并不指定具体数据结构类型,这又衍生出一个类型,那就是弱类型语言,这个很好理解,类型比较弱嘛就是没有强制规定。相对应的OC中变量的在声明时候都要指定其类型,因此它就是相对动态类型语言反面的静态类型语言,也是强类型语言

最后还要说明的就是运行时语言,由上文提到:编译型语言是要经过 编译--》运行,运行时语言就是在程序运行的时候才去调用该对象的方法,和决定其数据类型。而不是在编译的时候进行

参考网站 http://www.th7.cn/Program/IOS/

OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法。利用runtime机制让我们可以在程序运行时动态修改类、对象中的所有属性、方法,就算是私有方法以及私有属性都是可以动态修改的。

最新文章

  1. [erlang]supervisor(监控树)的重启策略
  2. [ARM] Cortex-M Startup.s启动文件相关代码解释
  3. SharedPreference写入-读取
  4. BROOTKIT Pinciple、Code Analysis(undone)
  5. Windows下安装Tomcat服务
  6. a标签替代input的submit提交功能
  7. 【HDOJ】1099 Lottery
  8. Notepad++背景颜色设置
  9. 重温委托(delegate)和事件(event)
  10. CSS3 3D旋转动画代码实例
  11. ConnectString ()函数的介绍
  12. Ubuntu出现ERR_PROXY_CONNECTION_FAILED错误解决方案
  13. C# string数组转int数组(转载)
  14. Java开发笔记(四十二)日历工具的常见应用
  15. 魅族资深DBA:利用MHA构建MySQL高可用平台
  16. 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups)VALUES('1','hh','hh@163.com','Boss')' at line 1
  17. 2017年java面试题【集合篇】
  18. js中创建数组,并往数组里添加元素
  19. chrome 浏览器之下载管理器插件
  20. 实践-通过matlab操作sqlite数据库

热门文章

  1. z-index无效
  2. 了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult & RedirectResult/RedirectToRouteResult
  3. win7 开启休眠
  4. Handoff使用指南 - 理论篇
  5. 【iOS基础学习随笔-1】-基于对象的程序设计
  6. AMQ学习笔记 - 16. 确认机制的测试
  7. Spring IoC容器的设计—2—主线
  8. [翻译.每月一译.每日一段]Exploring Fonts with DirectWrite and Modern C++
  9. 数列平方根的和 java
  10. 更新win7资源管理器