译者注:1.由于这是一篇技术文章,为了表达更准确,所以使用了原文中的一些词句。2.由于有效水平,部分地方翻译可能不够准确。如有不妥之处,敬请批评指正。我希望你喜欢你的第一个iOS编程教程并创建了你的第一个应用程序。在进入下一个教程并制作更复杂的应用程序之前,我们有必要回头分析一下HelloWorld应用程序。对你了解一些Objective-C语言的语法和App内部工作机制有很大的帮助。到目前为止,您一定已经按照教程完成了您的第一个HelloWorld应用程序。但是,看完本教程后,您的脑海中肯定会有更多的疑问:xib、.h、.m文件是干什么用的?showMessage里面的代码是什么?出于什么目的?按下HelloWorld按钮时发生了什么?按钮如何触发显示消息的动作?“运行”按钮在Xcode中如何工作?希望大家已经熟悉XcodeIDE开发环境,以上内容我就不用再多解释了。了解代码的内部细节,掌握iOS编程的基本概念,是每一个开发者所必需的。对于一些技术概念,如果没有丝毫的编程背景,是很难理解一些技术概念的。但别担心,这仅仅是个开始。如果你继续学习后续教程,多写代码,你就能更好地理解iOS编程。尽最大努力尽可能多地学习!InterfaceBuilder、Header和Implementation文件首先,什么是.xib、.h、.m文件?这是一位读者提出的非常好的问题。在项目导航器中,您应该找到3种主要文件类型:.xib、.h、.m。(如果你打开“SupportingFiles”文件夹,你可以找到其他文件类型,比如plist和framework。但是现在,让我们暂时忘记它们,我们将在以后的课程中讨论它们。).xib如果一个文件有还有.xib的扩展名,它们是存储应用程序UI的InterfaceBuilder文件。当你点击.xib文件时,Xcode会自动打开InterfaceBuilder界面,你可以通过拖拽的方式编辑应用程序的UI。如下图所示:Xcode.h和.m中的InterfaceBuilder.h扩展名的文件表示这是头文件,.m扩展名表示是具体的实现。与大多数其他编程语言一样,Objective-C的源代码也分为接口和实现两部分。为了让大家更好的理解两者的关系,我们拿电视遥控器来打个比方。我们可以使用无线遥控器轻松调节电视的音量。您按音量+按钮可提高扬声器的音量。要切换频道,只需按频道号即可。那么我问你,你知道当你按下音量键时幕后发生了什么吗?我想你不知道。相信大多数人都不知道遥控器和音箱是如何通信的。我们所知道的是该按钮用于调节音量。在这里,按钮就是接口,按钮背后的具体细节称为实现。您现在应该对接口和实现有更深入的了解。让我们回到代码。在Objective-C中,一个类的接口是放在.h文件中的。我们使用语法标识符@interface来声明类的接口。看HelloWorldViewController.h的具体实现:@interfaceHelloWorldViewController:UIViewController-(IBAction)showMessage;@endHelloWorldViewController这个类名以“@interface”开头。在内部,声明了“showMessage”的实现,也可以称为方法。与音量按钮一样,显然我们不知道showMessage方法是如何工作的。您只知道它用于在屏幕上显示消息。具体实现放在HelloWorldViewController.m文件中,如下:@implementationHelloWorldViewController//I'veremovedothermethodsforbetterreading.FocusontheshowMessagemethodfirst.-(IBAction)showMessage{UIAlertView*helloWorldAlert=[[UIAlertViewalloc]initWithTitle:@"MyFirstApp"message:@"你好,World!"delegate:nilcancelButtonTitle:@"OK"otherButtonTitles:nil];//DisplaytheHelloWorldMessage[helloWorldAlertshow];}@end如上所示,您使用“@implementation”来声明一个实现。在“showMessage”中,代码??用于定义在屏幕上弹出的警告。您不需要弄清楚“showMessage”方法中每一行代码的含义。简单来说,创建一个以“MyFirstApp”为标题,以“Hello,World”为消息的UIAlertView。然后调用“show”方法要求iOS在屏幕上显示弹出消息。如下图所示:HelloWorldApp,接口和实现你一定已经搞清楚了吧?TouchandTap的背后当您按下“HelloWorld”按钮时实际上发生了什么?“HelloWorld”按钮如何调用“showMessage”方法显示“HelloWorld”消息?回想一下您如何将“HelloWorld”按钮链接到InterfaceBuilder中的“sendMessage”操作。再次打开“HelloWorldViewController.xib”,选择“HelloWorld”按钮,在Utility区域点击“SentEvents”按钮,打开事件。发送部分显示有关事件和操作的所有连接。例如,如上图所示,“TouchUpInside”事件与“showMessage”动作关联。在iOS中,应用程序是事件驱动的。控件/目标侦听特定操作,例如触摸和按下。当事件被触发时,目标将调用与事件关联的预设动作。在我们的HelloWorld应用程序中,当用户将手指放在按钮上时,将触发“TouchUpInside”事件。结果,它调用“showMessage”操作来显示“HelloWorld”消息。下图直观地展示了刚刚描述的事件流:HelloWorldApp的事件和消息流“运行”按钮的幕后花絮当您点击“运行”按钮时,Xcode将加载模拟器并运行您的App。可是这一幕之后,发生了什么?作为程序员,你需要了解它的整个过程。整个过程可以分为3个部分:编译、打包和运行。编译你可能认为iOS可以理解Objective-C代码。大错特错,其实iOS只能看懂机器码。Objective-C代码仅供程序员阅读和编写代码。我们需要将Objective-C源代码翻译成机器码,这样iOS才能理解您App的源代码。这个过程称为编程。Xcode已经带有编译源代码的编译器。打包不同于其他源代码,一个App通常包含大量的资源文件,比如图片、文本、xlib文件等。所有这些资源都必须打包到最终的App中。我们将以上两个过程称为构建。按运行启动模拟器并加载您的应用程序。罗龙译原文链接:iOS编程基础:HelloWorldApp是如何工作的?
