第一篇: 了解 Objective-C语言的起源

第一篇: 了解 Objective-C语言的起源

介绍: Objective-C 通过一套全新的语法,在C语言基础上添加了面向对象特征。
1、消息结构
  1. 与大多数面向对象语言不通的是,Objective-C使用“消息结构”而非“函数调用”。Objective-C语言是由 Smalltalk 演化而来的,后者是消息语言的鼻祖。在语法上得区别是使用[]来“调用”方法,确切的说是发送消息。
  2. 关键区别在于: 使用消息结构的语言,其在运行时执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。
  3. 函数调用: 当代码中调用的函数是多态的,那么在运行时就要按照“虚方法表”来查找到底执行哪个函数实现。
  4. 消息结构: 而采用消息结构的语言,不论是否多态,总是在运行时才会去查找所要执行的方法。这个过程叫做“动态绑定”。
2、运行期组件
  1. Objecttive-C 的重要工作都是由”运行期组件”而非编译器来完成。使用 Objective-C的面向对象特性所需的全部数据结构及函数都在运行组件里面。举例来说,运行组件中含有全部内存管理方法。运行组件本质上就是一种与开发者所编代码相链接的”动态库”, 其代码能把开发者编写的所有程序粘合起来。这样的话,只需要更新运行期组件,即可提醒应用程序性能。而那种许多工作都在”编译期”完成的语言,若想获得类似的性能提升,则要重新编译应用程序代码。
3、Objective-C 和 C
  1. Objective-C是C的”超集”, 所以C语言中的所有功能在编写Objective-C代码时依然适用。因此,必须同时掌握C与Objective-C这两门语言的核心概念,方能写出搞笑的Objective-C代码。
  2. C语言中的堆栈

    a. 分配在堆中的内存必须直接管理,而分配在栈上用于保存变量的内存会再其栈帧弹出时自动清理

    b. Objective-C将堆内存管理抽象处理啊。不需要用malloc 及free来分配或是否对象所占内存。Objective-C运行期环境把这部分工作抽象为一套内存管理架构,名叫”引用计数器”

  3. 结构体和对象

    整个系统框架都在适用这个种结构体, 因为如果改用 Objective-C对象来做的话, 性能会受影响。与创建结构体相比,创建对象还需要额外开销,例如分配及释放堆内存等。如果只需要保存 int、float、double、char等”非都系类型”, 那么通常适用CGRect这种结构体就可以了。

4、要点
    1. 一、Objective-C为C语言添加了面向对象特性, 是其超集。

    1. 二、Objective-C使用动态绑定的消息结构, 也就是说, 在运行时才会检查对象类型。接收一条消息后, 究竟执行何种代码, 由运行期环境而废编译器来决定。

    1. 三、理解C语言的核心概念有主意写好Objective-C 程序。 尤其要掌握内存模型与指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值