还剩5页未读,继续阅读
文本内容:
苹果__工具概述
(一)Xcode和Inte_____Builder5条发表评论 收藏工欲善其事,必先利其器在__cOSX上__,首选Xcode继承__环境本文对__工具套件中最重要的Xcode和Inte_____Builder两个工具做了简要介绍什么是XcodeXcode是Apple自己__的,只运行在__cOSX平台下的IDE如果你想真正了解__cOSX平台上的__,就应该了解它当然,__cOSX实现了POSIX,固然也支持传统的UNIX编程环境;Eclipse等J__a__工具也有__cOSX版不过这些,你在Linux或者Windows平台也能体验到Xcode也并不神秘,Apple并没有自己特有的编译器(尽管__c上的__c是经苹果修改过的版本),创建项目的时候,Xcode还是会生成并执行一条条的__c和ld的命令所以如果你有足够的UNIX经验(并且知道到哪里找需要用的Framework),完全可以在命令行编译一个完整的Cocoa应用程序其实Xcode提供了很多功能,使你无论在创建项目、设计、修改代码还是编译等各个环节都能收益,恐怕你很难找到一个不使用它的理由事实上,自从__cOS
10.4引入了UniversalBinary的概念以后,Xcode几乎成为了大多数__c__者的唯一选择不用担心的是Xcode是免费的,只要你有一台__c,随机带的__盘里就有Xcode,升级是免费的(不过如果你用的是__cOS
10.5以前版本的OS,你将不能运行Xcode
3.0或以上的版本)什么是Inte_____BuilderInte_____Builder(IB)是__cOSX平台下用于设计和测试用户界面(GUI)的应用程序为了生成GUI,IB并不是必需的,实际上__cOSX下所有的用户界面元素都可以使用代码直接生成;但IB能够使__者简单快捷的__出符合__cOSXhu__n-inte_____guidelines的GUI通常你只需要通过简单的拖拽(drag-n-drop)操作来构建GUI就可以了IB使用Nib文件储存GUI资源,同时适用于Cocoa和Carbon程序在需要的时候,Nib文件可以被快速地载入内存ByeWindows程序学习和认识Xcode的最好办法就是学做一个简单的例子,不然,你永远只知道Xcode而不知道怎样去用它这样的例子网上很多(外部连接里我也放了两个),英文没问题的读者可以直接去看那些例子让我们来看看如何使用Xcode编写一个简单的Cocoa程序(为保证实时性,以下的例子均将采用Xcode
3.0使用Cocoa程序作为例子的原因是我希望用一个连贯的例子介绍Xcode和Inte_____Builder;同时Cocoa程序才能代表__cOSX编程的特点)首先我们需要__Xcode放入Leopard__DVD,再弹出窗口后,选择“OptionalInstalls-XcodeTools-XcodeTools.mpkg”,然后根据__向导完成____完成后,Xcode.app可以在“\Developer\Applications\”下找到双击图标,Xcode就应该运行起来了接下来我们需要创建一个新项目,__Xcode的菜单“File-NewProject...”或者使用快捷键Shift+Cmd+N这时会弹出一个Assistant窗口,你需要在这里选择你要建立哪一种Project选择“Application-CocoaApplication”,然后点“Next”接着你需要给项目取名字,并指定路径这里我们把项目叫做ByeWindows之后点“OK”,你就会看到Xcode的主窗口了图
1.1选择Project类型 我们先看左边“GroupsFiles”一栏,注意到代表整个Project的ByeWindows蓝色图标已被选中,此时显示的是整个Project所有的文件,包括源文件和需要生成的Binary文件注意到ByeWindows.app可执行文件是以红色显示,意味着这个文件现在还没有生成,但Project对它有一个Referen__如果改变左边选中的Group,右边的文件列表也会相应的更新现在我们在Classesgroup里新建两个文件右击选中Classes,Add-NewFile...选择O__ective-CClass,命名文件名为“AppController”,点OK这时两个新文件会被添加到Classgroup里默认情况下.__件会在一个新窗口中被打开,你可以使用快捷键Com__nd↑切换到.m文件你也可以在GroupsFiles一栏双击文件,使其在一个新窗口中打开在新窗口中编辑代码有时很方便,不过“All-in-One”window的模式或许更受偏爱不用急如果你喜欢“All-in-One”,只要先在左边单击选中__in.m文件,然后__Toolbar上的Editor按钮(如果你看不到这个按钮,你需要先通过__菜单项“View-CustomizeToolbar...”来添加该按钮),这样右边的窗口就变成了Editor以后你若选择左边的选项,右边Editor的内容会相应更新注意Xcode不象VS那样支持Tab,而是在Editor的上方一栏,你可以通过__左边那一对小三角来选择近来在Editor里打开过的文件;而__右边那一对小三角,可以让你选择当前编辑的文件里的Symbols(比如函数名等)图
1.2Editor 接下来我们要写点代码AppController.h@inte_____AppController:NSO__ect{IBOutletN__utton*button;}IBActionsaySomething:idsender;@endAppController.m:#importAppController.h@implementationAppControllervoidawakeFromNib{NSLog@Wakeup!;}IBActionsaySomething:idsender{NSLog@Hello__cGoodbyePC.;}@end这里我们定义了一个class,但还没有生成其Instan__这时双击Resour__s-__i__enu.nib,Inte_____Builder会自动启动从Library里drag一个NSO__ect(蓝色的正方体)到Title是__i__enu.nib的Window里接着在Inspector里选择IdentitytapCom__nd6,更改其Class为AppController(我们刚刚定义的class)接着,再从Library里Drag一个Button(任何一种Button都可以)到Title(Window的窗口)接下来按住Control的同时,Dragbutton到AppController,并连接其Action到SaySomething:接下来S__e并返回Xcode图
1.3拖拽O__ect图
1.4指定O__ect的Class图
1.5按住Control,从按钮拖拽到AppController接下来我们要编译project__toolbar上的“Build”图标,或者使用快捷键Com__ndB编译应该成功,这时注意主窗口的左右下脚各会显示“Buildsuc__eded”和“Suc__eded”__后者,你能看到“BuildResult”窗口,如果有任何Error或Warning,也会在这里显示出来接着运行程序,__Go图标或者使用快捷键Com__ndR这时你会看到你刚才在Inte_____Builder里建好的带有一个Button的窗口__Rditor窗口上方那个小的标有Gdb的图标,你可以看到WakeUp!的Log消息__窗口中的Button,你可以看到“Hello__cGoodbyePC.”的Log消息这里稍微解释一下这个程序工作的原理首先AppController是通过Nib文件来实例化的,AwakeFromNibMethod会在程序运行起来后自动被调用,所以才有了第一条Log消息此外我们在IB里建立了Button到saySomething:的__,而每当Button被按下时,其都会向其Target这里是AppController)发送一个消息(这里是saySomething:,所以每当我们按一下Button,都会有新的一条Log消息接下来我们要试一下如何调试首先我们得设一个Breakpoint这在Xcode里面最简单不过了,注意在Editor窗口的左边,有一栏显示着行号,在数字5的那里点一下...噢,一个Breakpoint就这样诞生了要改变Breakpoint的位置,我们只需要用鼠标上下拖动它;怎样去掉它呢?轻轻用鼠标的把它拖出来,放开鼠标,就好了如果你在蓝色的Breakpoint上点一下,它会变成灰色,意味着它被Disable了好,现在保证第5行有一个蓝色的Breakpoint,然后我们__菜单项“Run-Debug”,这时程序会在我们设的Breakpoint处停住这时把鼠标放在不同的变量上,可以看到变量的值同时注意,Editor的上方多出了一排用于调试的工具__最右边有“Gdb”字样的图标,我们可以再次看到Console窗口把Console窗口保留在一边,这时__左起第三个按钮(StepOver),Console里面会再次显示出“HelloWorld”;这时__左起第二个按钮(continue),由于我们没有其他的Breakpoint了,程序应该会正常终止更多关于Xcode和Inte_____Builder在Xcode里你可以__几乎所有可以在__cOSX上运行的(从命令行的C程序到J2EE程序)程序Xcode也提供了许多相应template,大大节省了配置project的时间Xcode也支持对多种文件的编辑,其中包括CoreDatadatamodel文件的编辑器,使你能够像画EntityRelationDiagram一样的编辑DataModel同时Xcode也整合了对VersionControl软件的支持(支持CVSSVNPerfor__)另外值得一提的是Xcode的Refactor功能,它可以让你方便的更改变量的名称,甚至更改一个类的基类,而不用你自己手动的去搜索和替换Inte_____Builder方面,值得一提的是对CocoaBinding的支持这里简单提一下什么是Binding通常,如果GUI需要呈现某些数据,你总需要写不少所谓“胶水”代码而__cOS
10.3引入了binding的概念,使得这些Cocoa程序里这些胶水代码的数量可以大副减少你只需要BindGUI部分的某些Properties到DataModel上即可在IB
3.0的Inspector的第四个Tab里(快捷键Com__nd4),你可以找到当前选中的GUI元素的可以用于Binding的Properties。