objective-c-2.0程序设计-第2章-objective-c程序设计课件

上传人:F****n 文档编号:88120414 上传时间:2019-04-19 格式:PPT 页数:31 大小:800KB
返回 下载 相关 举报
objective-c-2.0程序设计-第2章-objective-c程序设计课件_第1页
第1页 / 共31页
objective-c-2.0程序设计-第2章-objective-c程序设计课件_第2页
第2页 / 共31页
objective-c-2.0程序设计-第2章-objective-c程序设计课件_第3页
第3页 / 共31页
objective-c-2.0程序设计-第2章-objective-c程序设计课件_第4页
第4页 / 共31页
objective-c-2.0程序设计-第2章-objective-c程序设计课件_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《objective-c-2.0程序设计-第2章-objective-c程序设计课件》由会员分享,可在线阅读,更多相关《objective-c-2.0程序设计-第2章-objective-c程序设计课件(31页珍藏版)》请在金锄头文库上搜索。

1、第2章 Objective-C程序设计,第2章 Objective-C程序设计,2.1 编译并运行程序,代码清单2-1 - /First program example #import int main(int argc, const char * argv) autoreleasepool NSLog (“Programming is fun!“); return 0; ,在详细解释这个程序之前,先要学习编译和运行此程序的步骤。 使用Xcode编译并运行程序 使用GNUObjective-C 编译器在Terminal中编译并运行程序。,2.1.1 使用Xcode,Xcode是一款功能齐全的用

2、用程序,使用它可以轻松输入,编译,调试和执行程序。 启动Xcode,在File菜单下,选择New Project。,2.1.1 使用Xcode,在左侧窗口中,找到Command Line Utility .在右上窗格中,突出显示Foundation Tool,2.1.1 使用Xcode,单击choose,打开新窗口,我们将第一个程序命名为prog1,所以在Save As字段中输入“prog1”。如此创建一个单独的文件夹来存储所有的项目。 在本书中,所有的项目保存在Objc Progs的文件夹中。即prog1文件夹放在Objc Progs文件夹中。,2.1.1 使用Xcode,单击save按钮创

3、建新项目,显示项目窗口如下:,2.1.1 使用Xcode,在右上窗格中选择文件prog1.m,此时出现窗口如右图所示,在窗口的右下侧显示了文件prog1.m并包含了一下代码: #import int main (int argc, const char * argv) autoreleasepool NSLog (“Programming is fun!“); return 0; ,编辑窗口,Xcode已 创建了模板文件,如 下代码所示,该代码 是不完整的,2.1.1 使用Xcode,修改编辑窗口中显示的程序,使之与代码清单2-1相符。 现在应该编译并运行第一个程序了。但是首先应保存程序,从F

4、ile菜单中选择Save。如果在未保存文件的情况下尝试编译并运行程序,Xcode会询问你是否保存,此时选择保存即可。 在Build菜单下,可以选择Build或者Build and Run。 如果程序中有错误,在此步骤期间会看到列出的错误消息。此时,可以根据错误信息的提示,在编辑窗口修改错误,然后再次重复此过程。 当程序中没有错误时,会出现一个新窗口,显示prog1-Debugger Console。这个窗口中包含了程序的输出,如下所示。若该窗口未出现,从Run菜单中选择Console即可。,2.1.1 使用Xcode,使用Xcode编译并运行第一个程序的部分已经完成。下面总结一下使用Xcode

5、创建新程序的步骤: 启动Xcode应用程序; 如果开发新项目,选择FileNew Project; 为应用程序类型选择Command Line Utility,Foundation Tool,然后点击choose; 选择项目名称,还可以选择在哪个目录中存储该项目文件,然后选择Save; 在右上窗格中,会看到文件prog1.m(或者是你自己为项目起的名称,后面是.m。建议项目名称为有意义的单词或简写,便于理解项目目的)。突出显示该文件,在该窗口下面出现的编辑窗口中输入你的程序; 选择FileSave,保存已完成的更改(建议经常保存,以免代码丢失); 选择Build或者Build and Run,

6、或者点击Build and Go按钮构建并运行程序; 如果出现任何编译错误或者输出内容不符合要求,根据错误提示修改程序,并重复步骤6,7。,2.1.2 使用Terminal,有些人可能不想从学习使用Xcode开始Objective-C程序设计之旅。如果习惯于使用Unix shell和命令行工具,可能会用Terminal应用程序编辑,编译和运行程序。下面说明如何使用Terminal执行上述操作。 第一步:启动Mac上的Terminal应用程序。Terminal应用程序位于Application文件夹下,存储在Utilities中。 启动Terminal应用程序,可看到如右图所示的窗口。 命令要在

7、每一行的$(或者%)之后键入。 首先,需要将代码清单2-1中的程序输入到一个文件中。可以从创建一个用于存储这个程序例子的目录开始。然后,还必须运行一个文本编辑器来输入这个程序: sh-2.05a$ mkdir Progs 创建一个存储程序的目录 sh-2.05a$ cd Progs 转到新目录 sh-2.05a$ vi prog1.m 启动文本编辑器来输入程序 将程序输入到文件中之后,可以使用名为gcc的GUN Objective-C编译器来编译并连接这个程序。,2.1.2 使用Terminal,gcc命令的一般格式为: gcc -framework Foundation files -o p

8、rogname -framework Foundation 说明要使用有关Foundation框架的信息 files代指一个或多个要编译的文件。在本例中,files指prog1.m progname指,若编译不出错,那么包含这个可执行文件的文件名是progname 在本例中我们把程序命名为prog1;则用于编译的命令行为: $ gcc -framework Foundation prog1.m -o prog1 /Compile prog1.m & call it prog1 $ 命令提示符$在返回时没有附带任何消息,这意味着编译器没有在程序中发现错误。 现在,可以在命令提示符后键入名称pro

9、g1来继续执行这个程序: $ prog1 /execute prog1 sh: prog1: command not found $ 除非事先已使用Terminal,否则很可能得到上面的结果。导致这个情况的原因是Unix的shell并不知道prog1位于何处。,2.1.2 使用Terminal,所以此时有两种选择: 其一:将字符./放在程序名之前,以便告知shell在当前目录查找要执行的程序 其二:将用于存储程序的目录添加到shell的PATH变量中。 采用第一种方法如下: $ ./prog1 2008-06-08 18:48:44.210 prog17985:10b Programming

10、is fun! $ 应该注意的是,通过terminal编写和调试Objective-C程序是一个有效的方法。但是并不是好的长期策略。如果想构建Mac OS X或iPhone应用程序,除了可执行文件,还有很多文件都需要“打包”到应用程序软件中。在Terminal中执行这些操作并不容易,而XCode则对此很擅长。因此,建议首先学习如果使用Xcode开发程序。,第2章 Objective-C程序设计,2.2 解释第一个程序,熟悉了编译并运行Objective-C程序的各个步骤后,我们更详细的讲述这个程序。 /First program example #import int main(int arg

11、c, const char * argv) autoreleasepool NSLog (“Programming is fun!“); return 0; ,在Objective-C中,小写字母和大写字母是不同的。同样,Objective-C不关心程序的开始处,程序行的任何位置都能输入语句。,2.2 解释第一个程序,程序的第一行引入了注释的概念 /First program example 向Objective-C程序中插入注释时,有两种方法。 1。使用两个连续的斜杠(/)。双斜杠后知道这行结尾的任何字符都将被编译器忽略 2。以字符/和*开始,已*和/结束。在开始标记和结束标记之间的所有字符

12、都被看做注释语句的一部分。通常使用这种方法实现多行注释。但此方法不能嵌套使用。 在编写程序时,应该养成在程序中插入注释的习惯,2.2 解释第一个程序,代码清单2-1的下一个程序行 #import 告诉编译器找到并处理名为Foundation.h的文件。这是一个系统文件。 #import表示将该文件的信息导入或包含到程序中,就像把此文件的内容键入到程序中 此程序行的意思是,导入文件Foundation.h,因为它包含程序结尾处用到的其它类和函数的有关信息,2.2 解释第一个程序,在代码清单2-1中,程序行 int main(int argc, const char *argv) 指定程序的名称为

13、main,它是一个特殊名称,用于准确地表示程序将在何处开始执行。 main之前的保留字int指定main返回的值类型,该值为整型。 暂时忽略括号之内的内容。它们与名为命令行参数的内容有关。 认识了针对系统的main,可以准确指定这个例程要执行哪些工作。把例程的所有语句放入到一对花括号中,可以完成这项工作。 在最简单的情况下,一条语句就是一个以分号结束的表达式。 系统把位于花括号中间的所有程序语句看做main例程的组成部分。 main例程有4条语句。,2.2 解释第一个程序,main例程的第一条语句是: autoreleasepool “”和“”之间的程序语句会在被称为“自动释放池”(autor

14、elease pool)的语境中执行。自动释放池的机制是:它使得应用在创建新对象时,系统能够有效地管理应用所使用的内存。,2.2 解释第一个程序,main例程的第二条语句,指定要调用名为NSlog的例程 NSLog ( “Programming is fun!“); 传递给NSLog例程的参数(实参)是字符串“ “Programming is fun!“ ” 此处符号在位于一对双引号的字符串前,称为常量NSString对象 NSLog例程是Objective-C库中的一个函数,它仅仅显示或记录其参数。但是之前会显示该例程的执行日期和时间,程序名以及其它信息。在以后的过程中,将不会再列出NSLo

15、g在输出前面插入的这些文本。 Objective-C的所有程序语句必须使用分号(;)结束。,2.2 解释第一个程序,main中的最后一条语句是: return 0 ; 它表示要终止main的执行并返回一个状态值0。 按照约定,0意味着程序正常结束。任何非零值通常表示出现了问题。 回顾Xcode的Debug Console窗口,会发现在NSLog输出之后将显示: The Debugger has exited with status 0. 就是这个意思,2.2 解释第一个程序,结束了对第一个程序的讨论,现在对该程序进行修改。代码如下: 代码清单2-2 - #import int main(int argc, const char * argv) autoreleasepool NSLog (“Programming is fun!“); NSLog (”Programming in Objective-C is even more fun!”); return 0; 编译并运行,将会看到输出:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号