编写高质量iOS与OS X代码的52个有效方法(一)

本文介绍了Objective-C语言的独特之处——消息传递机制,并对比了它与C++等语言中函数调用的区别。通过示例代码展示了Objective-C如何在运行时确定方法的执行,这为多态性和动态性提供了强大的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Objective-C语言使用“消息结构”而非“函数调用”。Objective-C语言由Smalltalk演化而来,后者是消息型语言的鼻祖。消息与函数调用之间的区别看上去就像这样:

//Messaging (Objective-C)

Object *obj = [Object new];

[obj performWith:parameter1 and:parameter2];

//Function calling (C++)

Object *obj = new Object;

obj->perform(parameter1, parameter2);

关键区别在于:使用消息结构的语言,其运行时所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。如果范例代码中调用的函数是多态的,那么在运行时就要按照”虚方法表“来查出到底应该执行哪个函数实现。而采用消息结构的语言,不论是否多态,总是在运行时才会去查找所要执行的方法。实际上,编译器甚至不关心接收消息的对象是何种类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值