C/C++到Objective-C:iPhone开发入门

需积分: 9 4 下载量 193 浏览量 更新于2025-01-03 收藏 281KB PDF 举报
"从C&C++到Objective-C的过渡指南,专注于帮助熟悉C++的开发者理解和适应Objective-C的特性和语法,以便进行iPhone应用开发。本文档提到了Objective-C中的‘消息’概念,以及与C/C++中函数调用的区别。" 在C++和C语言中,函数调用是静态绑定的,需要预先定义并明确调用。然而,Objective-C采用了不同的机制,它使用的是消息传递。在Objective-C中,"方法调用"被称为"消息发送",并且可以在运行时动态解析,这使得Objective-C具有很强的灵活性和动态性。这种灵活性的一个副作用是,如果对象没有实现对应的方法,发送一个无法响应的消息会导致程序异常,甚至崩溃。 例如,假设我们有一个对象`myWidget`,在Objective-C中,要调用`powerOn`方法,我们会写成: ```objc returnValue = [myWidget powerOn]; ``` 而在C++中,同样的操作会表现为: ```cpp returnValue = myWidget->powerOn(); ``` 对于C语言,该方法会被声明为一个全局函数: ```c returnValue = widget_powerOn(myWidget); ``` Objective-C还支持方法参数的显式命名,这提高了代码的可读性。例如,调用一个带有两个参数的`setSpeed`方法,我们可以这样写: ```objc returnValue = [myWidget setSpeed:10.0 withMass:33.0]; ``` 在这里,`withMass`是第二个参数的显式名称,这种做法使得代码更易于理解,尤其是在方法有多个参数时。 Objective-C的消息传递机制也允许方法选择器(selector)的使用,这是 Objective-C 中的一个重要概念。方法选择器是方法名的唯一标识符,可以用来在运行时动态地查找和调用方法。这种特性在C++中是不存在的,它进一步增强了Objective-C的面向对象编程能力。 为了更好地理解Objective-C,可以参考《Cocoa入门---使用Objective-C》英文版,以及《iPhone Open Application Development》等资料。这些资源将有助于C++开发者快速掌握Objective-C的基础知识,从而更高效地进行iPhone应用的开发工作。