Xcode 和Interface Builder

本文详细介绍了如何使用Xcode进行Mac程序开发,包括创建项目、设计界面、编写代码、编译与调试等步骤。通过实例操作,帮助开发者快速掌握Xcode的基本使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Xcode?

Xcode 是Apple自己开发的,只运行在Mac OS X平台下的IDE。如果你想真正了解Mac OS X平台上的开发,就应该了解它。当然,Mac OS X实现了POSIX,固然也支持传统的UNIX编程环境;Eclipse等Java开发工具也有Mac OS X版。不过这些,你在Linux或者Windows平台也能体验到。Xcode也并不神秘,Apple并没有自己特有的编译器(尽管Mac上的Gcc是经 苹果修改过的版本),创建项目的时候,Xcode还是会生成并执行一条条的Gcc和ld的命令。所以如果你有足够的UNIX经验(并且知道到哪里找需要用 的Framework),完全可以在命令行编译一个完整的Cocoa应用程序。

其 实Xcode提供了很多功能,使你无论在创建项目、设计、修改代码还是编译等各个环节都能收益,恐怕你很难找到一个不使用它的理由。事实上,自从Mac OS 10.4引入了Universal Binary的概念以后,Xcode几乎成为了大多数Mac开发者的唯一选择。不用担心的是Xcode是免费的,只要你有一台Mac,随机带的安装盘里就 有Xcode,升级是免费的(不过如果你用的是Mac OS 10.5以前版本的OS,你将不能运行Xcode 3.0或以上的版本)。

什么是Interface Builder?

Interface Builder(IB)是Mac OS X平台下用于设计和测试用户界面(GUI)的应用程序。为了生成GUI,IB并不是必需的,实际上Mac OS X下所有的用户界面元素都可以使用代码直接生成;但IB能够使开发者简单快捷的开发出符合Mac OS X human-interface guidelines的GUI。通常你只需要通过简单的拖拽(drag-n-drop)操作来构建GUI就可以了。

IB使用Nib文件储存GUI资源,同时适用于Cocoa和Carbon程序。在需要的时候,Nib文件可以被快速地载入内存。

ByeWindows程序

学习和认识Xcode的最好办法就是学做一个简单的例子,不然,你永远只知道Xcode而不知道怎样去用它。这样的例子网上很多(外部连接里我也放了两个),英文没问题的读者可以直接去看那些例子。

让 我们来看看如何使用Xcode编写一个简单的Cocoa程序(为保证实时性,以下的例子均将采用Xcode 3.0。使用Cocoa程序作为例子的原因是我希望用一个连贯的例子介绍Xcode和Interface Builder;同时Cocoa程序才能代表Mac OS X编程的特点)。

首 先我们需要安装Xcode。放入Leopard安装DVD,再弹出窗口后,选择“OptionalInstalls->Xcode Tools->XcodeTools.mpkg”,然后根据安装向导完成安装。安装完成后,Xcode.app可以在“\Developer \Applications\”下找到。双击图标,Xcode就应该运行起来了。

接 下来我们需要创建一个新项目,点击Xcode的菜单:“File->New Project...”或者使用快捷键Shift+Cmd+N。这时会弹出一个Assistant窗口,你需要在这里选择你要建立哪一种Project。 选择“Application->Cocoa Application”,然后点“Next”。接着你需要给项目取名字,并指定路径。这里我们把项目叫做ByeWindows。之后点“OK”,你就会 看到Xcode的主窗口了。

图1.1 选择Project类型 

:Xcode

我 们先看左边“Groups & Files”一栏,注意到代表整个Project的ByeWindows蓝色图标已被选中,此时显示的是整个Project所有的文件,包括源文件和需要 生成的Binary文件。注意到ByeWindows.app可执行文件是以红色显示,意味着这个文件现在还没有生成,但Project对它有一个 Reference。如果改变左边选中的Group,右边的文件列表也会相应的更新。现在我们在Classes group里新建两个文件:右击选中Classes,Add->New File... 选择Objective-C Class,命名文件名为“AppController”,点OK。这时两个新文件会被添加到Class group里。默认情况下.h文件会在一个新窗口中被打开,你可以使用快捷键Command↑切换到.m文件。你也可以在Groups & Files一栏双击文件,使其在一个新窗口中打开。在新窗口中编辑代码有时很方便,不过“All-in-One” window的模式或许更受偏爱。不用急如果你喜欢“All-in-One”,只要先在左边单击选中main.m文件,然后点击Toolbar上的 Editor按钮(如果你看不到这个按钮,你需要先通过点击菜单项“View->Customize Toolbar...”来添加该按钮),这样右边的窗口就变成了Editor。以后你若选择左边的选项,右边Editor的内容会相应更新。注意 Xcode不象VS那样支持Tab,而是在Editor的上方一栏,你可以通过点击左边那一对小三角来选择近来在Editor里打开过的文件;而点击右边 那一对小三角,可以让你选择当前编辑的文件里的Symbols(比如函数名等)。

图1.2 Editor 

:Xcode

 

接下来我们要写点代码:

AppController.h: 
@interface AppController : NSObject {
IBOutlet NSButton *button;
}

(IBAction)saySomething:(id)sender;

@end
AppController.m: 
#import "AppController.h"

@implementation AppController

(void)awakeFromNib {
NSLog(@"Wake up!");
}

(IBAction)saySomething:(id)sender {
NSLog(@"Hello Mac, Goodbye PC.");
}

@end
这 里我们定义了一个class,但还没有生成其Instance。这时双击Resources->MainMenu.nib,Interface Builder会自动启动。从Library里drag一个NSObject(蓝色的正方体)到Title是MainMenu.nib的Window里。 接着在Inspector里选择Identity tap (Command6),更改其Class为AppController(我们刚刚定义的class)。

接 着,再从Library里Drag一个Button(任何一种Button都可以)到Title(Window的窗口)。接下来按住Control的同 时,Drag button到AppController,并连接其Action到SaySomething:。接下来Save并返回Xcode。

图1.3 拖拽Object 

:Xcode

图1.4 指定Object的Class 

:Xcode

图1.5 按住Control,从按钮拖拽到App Controller 

:Xcode

接 下来我们要编译project。点击toolbar上的“Build”图标,或者使用快捷键CommandB。编译应该成功,这时注意主窗口的左右下脚各 会显示“Build succeeded”和“Succeeded”。点击后者,你能看到“Build Result”窗口,如果有任何Error或Warning,也会在这里显示出来。接着运行程序,点击Go图标或者使用快捷键CommandR。这时你会 看到你刚才在Interface Builder里建好的带有一个Button的窗口。点击Rditor窗口上方那个小的标有Gdb的图标,你可以看到Wake Up!的Log消息。点击窗口中的Button,你可以看到“Hello Mac, Goodbye PC.”的Log消息。

这 里稍微解释一下这个程序工作的原理:首先AppController是通过Nib文件来实例化的,AwakeFromNib Method会在程序运行起来后自动被调用,所以才有了第一条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窗口保留在一边,这时点击左起第三个按钮(Step Over),Console里面会再次显示出“Hello World”;这时点击左起第二个按钮(continue),由于我们没有其他的Breakpoint了,程序应该会正常终止。

更多关于Xcode和Interface Builder

在Xcode里你可以开发几乎所有可以在Mac OS X上运行的(从命令行的C程序到J2EE程序)程序。Xcode也提供了许多相应template,大大节省了配置project的时间。

Xcode 也支持对多种文件的编辑,其中包括Core Data data model文件的编辑器,使你能够像画Entity Relation Diagram一样的编辑Data Model。同时Xcode也整合了对Version Control软件的支持(支持CVS, SVN, Perforce)。

另外值得一提的是Xcode的Refactor功能,它可以让你方便的更改变量的名称,甚至更改一个类的基类,而不用你自己手动的去搜索和替换。

Interface Builder方面,值得一提的是对Cocoa Binding的支持。这里简单提一下什么是Binding。通常,如果GUI需要呈现某些数据,你总需要写不少所谓“胶水”代码。而Mac OS 10.3引入了binding的概念,使得这些Cocoa程序里这些胶水代码的数量可以大副减少:你只需要Bind GUI部分的某些Properties到Data Model上即可。在IB 3.0的Inspector的第四个Tab里(快捷键Command4),你可以找到当前选中的GUI元素的可以用于Binding的 Properties。


如何在windows平台下安装iphone开发环境xcode或模拟环境安装

2010-8-23 14:22
提问者:testnull  |  浏览次数:3093次
2010-8-23 15:10
最佳答案
1. DragonFireSDK可以在Windows下进行iPhone开发的工具,需要在Microsoft Visual C++下使用, 同时开发的应用与iPhone兼容的,甚至可以在App Store中发布你的程序 2. 在windows下可安装cywin后,安装相应的iphone sdk进行使用,安装参考见 3. 在windows下可以使用vmware安装mac os然后安装xcode进行开发,安装参考见

Xcode使用教程详细讲解 (上)

2011-07-06 佚名 互联网  我要评论(0) 字号: T |  T
一键收藏,随时查看,分享好友!

本文介绍的是Xcode使用教程详细讲解,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境。

AD:

Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境。因此,如果你要成为Mac 程序的开发者,灵活运用Xcode工具是你必须做的第一步。

1)我们写程序时常常在源文件的头部添加copyright声明以及公司名称等等;而Xcode在创建文件时已 经帮我们做了绝大部分工作,我们可能需要修改一下公司名称,因为xcode给不知道我们公司名称,它不可能预知一切,所以需要我们自己通过设置来告诉它。 那么我们如何做到这一点呢?因为xcode中没有有关公司名称的占位符,所以我们必须通过terminal使用命令来设置。

在使用这个命令之前 我们来看看xcode为我们提供的默认文件头部注释:

  1. //  
  2. //  untitled.m  
  3. //  FilesOrganize  
  4. //  
  5. //  Created by yan li on 8/29/09.  
  6. //  Copyright 2009 __MyCompanyName__. All rights reserved.  
  7. // 

在terminal中执行如下命令(打开terminal的热键是command+shift+U):

  1. yan-lis-macbook-pro:~ yanli$ defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" "LiYanzhong";}' 

注意上面的命令是在terminal命令行的同一行,而不是两行,这里是因为命令太长所导致。注意该命令执行时不会发出任何提示,即使你在命令中写 错了参数名执行后也不会有任何提示,所以如果你执行该命令后发现你期待的效果没有出现,就请你检查一下你是否有拼写错误,执行该命令后我们重新启动 xcode并重新创建文件,这个时候创建的文件头部注释,如下所见:

  1.  

2)使用编辑器的技巧

a)如何关闭Xcode界面上的浏览器窗口?

点击 在Xcode工具栏上的最右边个Editor图标,可以打开或关闭Xcode中查找项目文件的浏览器。快捷键是command+shift+E。

Xcode使用教程详细讲解

如果你的窗口上每个我所说的图标,则你需要自己手动将该图标放置到工具栏上。如何放呢?

激活Xcode工具,进入 View->Customize Toolbar...  你会发现右很多没有在工具栏上出现的工具,你可以将想要随时可以用的工具拖到工具栏上就ok了。

b)如何对代码进行首行缩进?

第一种方法:选中需要缩进的代码,按住control键后单击光标,出现pop菜单,然后选择Re-indent selection。

第二种方法:选择需要调整的代码,同时按下command+[ (左移动代码)或 command+](右移动代码)。

c)代码自动完成功能的强大应用
     
在Xcode中写代码,Xcode编辑器常常给出提示,如果给出的代码提示符合我们的要求,我们就可以按tab键选择所提示的代码。
        
如果提示代码不符合我们要求,我们可以按下esc键,将整个提示列表显示出来,找到我们需要的。在列表成员的最左边有个小方框,如果里面是f则对应的成员是函数;如果是m则是方法;如果是#则是#define命令;如果是E则是枚举;如果上C表示类。
        
如果我们不希望显示提示列表也能在列表成员间选择,我们可以使用快捷键control+.  在选项之间循环;也可以使用shift+control+. 在选项间反向循环。我们可以通过“代码自动完成功能”来查询一个类所提供了哪些API(接口方法)。方法是将类写在方法调用表达式中实现这一查询功能:

[NSDictionary+空格,然后按下esc键,将出现NSDictionary中提供的方法列表。注意:[NSDictonary后面必须要有空格,提示编译器类名称已经写完接下来要输入的是消息(即类中的方法名)。

将光标从一个占位符跳到下一个占位符的快捷键是:control + /

d)在修改一个项目的代码时,请先拍下快照。

File->Make Snapshot 拍下项目的快照; File->Snapshots  从快照中恢复。对应的快捷键:control+command+S;  恢复没有快捷键,这样的好处就是--当代码修改烂了,可以恢复到最处状态。由此可见,这个功能只是在我们修改代码时提供帮助,不能真正的替代我们手动修改 代码。

e)查找 替换功能的使用:

  1. Edit->Find->Find in Projects... 

出现如下对话框:

Xcode使用教程详细讲解


 
在Find栏输入要查找的字符;在Replace栏中输入要替换查找到的字符的字符;我们选择在工程中查找。如果我们不选择Ignore case 则替换只发生在main()函数中。

该方法修改代码有很到的弊端--如果我只想修改某个函数内的car字符,但是这样修改会将函数外的所有我不许修改的car字符也改了;二是它不能修改类名和文件名;所以需要下面的方法来弥补它的第一不足。

f)该方法可以解决上面修改代码的第一个缺陷,可以将代码的修改控制在一个函数之内,但是它仍然不能修改类和文件名字。使用这个方法前,必须用光标 选择一个需要修改的局部变量字符或函数参数,注意必须是字符,如果你选择的是类名字符则不会出现菜单项“ Edit all in Scope".

Edit->Edit all in Scope,然后在你输入的时候,所有出现该字符的地方一起被输入的字符替换掉。

g)下面讲解一种可以修改类名和文件名的方法。

是用该方法可以改变类名字和文件名;先选择一个需要被修改的类名,如Engine;将光标插了到该字符中,选择Edit->Refactor...打开如下的对话框:

Xcode使用教程详细讲解

Xcode使用教程详细讲解

你如果需要将Car修也可以。

按下 preview按钮,界面如下所见,Xcode自动给处了我们分析报告,有什么文件将被修改,每个文件有几处会被修改等信息。从下面图可以看到,类名以及类的文件名都被修改了。

Xcode使用教程详细讲解

h)在Cocoa文本域常用的快捷键:

使用如下的快捷键 我们就可以在小范围呢移动光标二不让手不离开键盘了。

control+F  : 在同一行上将光标向右移动

control+B : 在同一行上将光标向左移动

control+P :  将光标移动到前一行

control+N :  将光标移动到后一行

control+A :   将光标移动到本行的行首

control+N :   将光标移动到本行的行尾

control+T :   将光标两边的字符对调

control+D :   删除光标右边的字符

control+k :   删除光标所在行 光标后面的代码,便于你重写行尾代码

control + L :将光标插点置于窗口正中。

i)如何在Xcode中搜索一个文件?

在一个源文件如何打开一个由#import导入的头文件呢?

选中该头文件(可以不包含.h),然后通过File->Open Quickly...打开该被选中的文件。

在没有选中任何文本时,选择Open Quickly...则打开一个简单的查询窗口,查找工程中的文件。快捷键command+shift+D

如果你当前在看一个.m文件,这个时候你突然想要看看与该文件对应的.h文件,我们可以使用command + option+向上箭头  组合键,打开配套文件。

小结:Xcode使用教程详细讲解 (上)的内容介绍完了,请继续参考 Xcode使用教程详细讲解 (下)希望本文对你有所帮助。

【编辑推荐】

  1. Xcode 3.2.5和iOS 4.2 SDK安装初体验(30张图)
  2. iOS平台开发工具 Xcode
  3. iOS开发工具Xcode 4的新特性
  4. 理解苹果专业开发工具Xcode
  5. 详解XCode构造 IOS应用程序如何启动

Xcode使用教程详细讲解 (下)

2011-07-06 10:46 佚名 互联网  我要评论(0) 字号: T |  T
一键收藏,随时查看,分享好友!

本文介绍的是Xcode使用教程详细讲解,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境。

AD:

Xcode使用教程详细讲解 (下)是本节要介绍的内容,继续Xcode使用教程详细讲解 (上)的内容开始介绍。

j)Xcode中书签的使用

如果你要将代码中的某个部分标注起来,以便以后和方便的找它这部分代码,则我们可以使用书签。

选中一段文本或在源文件中放入插入点,然后选择Edit->Add to Bookmarks(快捷键 command + D),出现提示时输入书签名。

k)代码编辑器的导航条

导航条 就是在本文编辑窗口的顶部。

导航条上有个功能菜单,我们可以通过#pragma mark命令向 功能菜单上添加项。#pragma指令将objective-c将常规代码之外的信息或说明传递给编译器和代码器。通常,#pragma是被忽略,如果你的编译器不认识它就会忽略它,不会报考警告。

除了通过#pragma mark向功能菜单添加项;

在注释中以如下关键字符打头的文本都会被添加到功能菜单:

  1. MARK:  
  2. TODO:  
  3. FIXME:  
  4. !!!:  
  5. ???: 

Xcode使用教程详细讲解

L)通过研究助手(Research Assistant)获取Xcode 的文档和参考资料。

可以通过Help->Show Research Assistant 打开研究助手;一旦研究助手的浮动窗口被打开后,浮动窗口中的内容会随着你与Xcode 交互操作的内容改变而改变。
如下图所示:在Tire.m文件中,当光标在NSString类上时,研究助手浮动窗口所显示的信息:

Xcode使用教程详细讲解

切换到文件Tire.h中,研究助手的浮动窗口就显示有关NSObject的信息:

Xcode使用教程详细讲解


 
M)文档管理程序

我们可以通过访问苹果公司的官方API文档;方法是按住Option键并双击某个要查看的符号。如我们按住Option键并双击NSString符号将在文档浏览器窗口中打开有关NSString的资料信息,如下图:

Xcode使用教程详细讲解

按住control键并单击文档区域来打开pop菜单,选择任何菜单项,在另一个窗口中打开该文档。
 
M)如何调试程序?
 
(a)有两种方法:一是暴力调试,二是使用调试器调试。

什么是暴力调试?

暴力调试就是在你的程序中添加NSLog()语言,将程序的控制流程和一些重要数据输出到终端上。
 
调试器调试:

调试器 就是介于你编写的应用程序和操作系统之间的一种程序,可以对你的程序进行控制,如停止,执行,单步跟踪等。

Xcode使用的调试器是GDB。

Xcode除了有GDB外,还有一个微型调试器,它是一个浮动窗口,通过它我们能接跳过GDB调试器做一些简单的调试工作。

Xcode有一个提供大量概述信息的调试窗口。

Xcode提供一个调试控制台,通过它可以直接向调试器发调试命令。

(b)如何用调试器进行调试?

(1)编译程序时必须使用编译器的Debug配置,这样编译出的程序包含调试信息(调试器要用的信息)

(2)调试时 需要让程序在调试器模式下运行。

在Xcode中有两种运行程序的方法:Run->run  (快捷键:command + R), 不用调试器运行程序;

Run->Go(Debug)或者Run->Debug(快捷键:command+Y),使用调试器运行程序。

(3)对 断点 的操作 如何设置断点?

在 边列(gutter)上单击 就可以设置一个蓝色的断点;在次单击就disable该断点;如果要删除该断点就将该断点拖出边列。

调试快捷键:

  1. continue       option command P  
  2. step Into       shift command I  
  3. step Over      shift command O  
  4. step Out        shift command 

打开Xcode的调试窗口(点击调试控制栏上一个有喷雾器的方框)如下图:

Xcode使用教程详细讲解

通过该窗口,可以执行各种调试命令并观察变量值的变化。
                                     
如下是GDB的命令调试窗口,在其中可以输入gdb的调试命令对程序进行调试:

Xcode使用教程详细讲解


                              
通过调试控制栏上一个控件(黑色方框控件右边的那个),可以察看函数调用栈;如上图所示。
           
[Note]边列(断点所在的列) 傍边较窄一列就是 焦点列。

小结:Xcode使用教程详细讲解的内容介绍完了,希望本文对你有所帮助,我们大概学习了Xcode这一强大的工具,要想深入研究它,我们还有很多的路要走,不过我们已经有了一个好的开始。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值