从C/C++过渡到Objective-C消息机制与方法设计

从 C 语言的函数调用到 C++的对象方法,过渡到 Objective-C 最直观的变化,就是它的消息机制。你不再是直接调用,而是在“发消息”。比如[myWidget powerOn],听起来就挺像给对象发个指令,响应也快,语义也清晰,挺有意思的一种思路。

Objective-C 的方法名设计也有一套,参数名直接写在方法名里,可读性那是真的强。像[myWidget setSpeed:10.0 withMass:33.0]这种写法,读起来像句子,逻辑清晰,扩展性也不错。你要是习惯了 C++那种重载方式,一开始不太适应,但习惯了之后感觉蛮顺手的。

类的结构也挺规整。接口用@interface 定义实现放@implementation 里。这种分离写法,维护起来更有条理。访问控制也比较清楚,有@private@protected这些限定符,比 C++更显式一些。

说到导入文件,Objective-C 用#import,相比#include多了个好处——自动防重复导入。这点在大型项目里太香了,不用手动加#ifndef这些宏,清爽不少。

不过 Objective-C 也不是啥都好,比如消息机制虽然灵活,但也得注意容错。发了个对象接不到的消息,程序说崩就崩。所以你要是从 C 或 C++转过来,最好多留个心眼,加点判断和容错。

如果你平时主要写 C++,想搞点 iOS 开发,建议看看这篇文章。顺便推荐几篇相关的拓展内容,像C++ 与 Objective-C 的语言差异这篇,挺有。

pdf 文件大小:280.53KB