xcode全中文教程(iOS开发快速入门利器)
Mac软件开发 Xcode 帮助 中文版
3. 产品。产品是您完成的工作。对于每一个目标,都有一个产品
工程窗口工具栏
缺省情况下,工具栏包含以下项目:
目标弹出式菜单。这个菜单显示活跃目标,任何时候您编译生成,运行,或者调试 您的工程时您就会使用这个目标。您可以使用这个菜单改变活跃目标。
编译生成按钮。这些按钮开始一些常用的编译生成动作,比如说编译,清除,和运 行。在编译生成按钮的底部的三角符号表示每个按钮有多个动作。在一个编译生成 按钮上单击会执行按钮图标代表的动作。如果您点击一个编译生成按钮并且按住一 会鼠标按钮,您会打开一个下拉菜单,里面是所有与这个按钮有关的动作。您可以 选择其中的动作来执行它。
项目的数目。 组和文件列表组织在您的工程里所有的文件,目录,和目标。您可以在组和文件列
表里移动文件和目录并且组织您的工程内容。在组和文件列表里当前的选择控制了 在细节信息窗口里显示的内容。 细节信息窗口显示在组和文件列表里选择的一个或者多个项目。您可以使用搜索输 入框搜索细节信息窗口的内容或者按照列排序细节信息窗口里的内容。细节信息窗 口帮助您快速查找和访问您的工程的内容。
全面访问和操作工具。 例如,您可以在目标的检视窗口中图象化的设置 绝大多数常用的编译器选项。您可以通过简单的点按按钮或者选择菜单命 令完成绝大多数常用的调试命令。如果您还有特殊的需求,您可以在调试 器终端面板中直接输入命令行指令。
自定义编译流程。 Xcode 允许您根据自己的需要去修改标准的编译流程, 您可以添加您自己的步骤到定义好的标准样板步骤中去。例如,您可以添 加一个步骤完成复制文件到应用程序包或者其它的一个目录中去。您可以 拷贝一个 Read-Me 文件到一个文档的文件夹,或者您可以拷贝一个 framework(框架)到用户域的 Library 目录中。您还可以定义一个步骤来 加入任何在命令行终端窗口中可执行的命令。您可以使用那些在 Xcode 中没有界面的工具去处理一个文件,当编译完成后给您自己发一封 email, 或者使用 FTP 把您的结果备份到服务器上去。
Mac Os Xcode开发人员入门导引(简体中文版)
对于编译器来说变量本身并没有特别的意义,但是描述性变量可以令程序简单易读并易于理 解。特别是你在代码中寻找错误的时候它就显得特别有用。
严格遵守这个约定,可以减少许多因为区分大小写带来的错误。 请注意变量名一般由单个单词构成(必要时也可以是一个字母)。
尽管你在使用变量名上有充分的自由,但依然要遵循一些规则。也许这些规则令人讨厌。最 重要的一条规则是你不能使用 Objective-C 语言中的保留字(也就是在 Objective-C 语言中已经有了 特殊含义的单词)。使用简明的单词组成变量名,比如 pictureWidth,通常是安全的。为了保证变 量名的可读性,推荐在其中使用大写字母,这条规则可以让你程序减少错误。
/books 2、通过视觉展示告诉世界并不是人人都用PC。在公共场合着一件以Mac微机为印花的T恤是个 办法,但还有许多其他途径。如果运行“活动监视器(Activity Monitor)”(位于“应用程序”文 件夹下的“实用程序”文件夹里面),你会注意到你的Mac微机只是偶尔才会满负荷运行。 科研人员正在推动几项“分散计算计划”(distributed computing projects,简称DC),比如 Folding@home和SETI@home,就是利用Mac微机空闲的处理能力来为公众服务。你只需要下载一个 被称做DC客户端(DC client)的免费小程序并开始处理工作。这些 DC客户端(DC client)占用很 少的系统资源。如果你运行一个占用资源很大的程序, DC客户端(DC client)将自动中止,因此 你大可不必在意它的运行。这项工作如何帮助Mac微机?通常这种DC项目的网站上回对各个团队的 工作进度进行排名。如果你加入了一个Mac微机团队(你可以从他们的名字中区别来),你就可以 帮助你的团队提升排名。其他平台的用户会看到Mac微机是如此之棒!DC项目的内容很丰富,有关 于数学的,也有关于医疗的等等。你可以通过一下网址找到一个你感兴趣的DC项目:
xcode教程
江 哪些变量名称,还有这些变量指代什么类型的常量,也就是说指代整数还是浮点数。用术
语讲,叫做“声明变量”。
6 Xcode 开发指导
例 5: int pictureWidth; float pictureHeight, pictureSurfaceArea; pictureWidth = 8; pictureHeight = 4.5; pictureSurfaceArea = pictureWidth * pictureHeight; 上例第一行中 int 表示变量 pictureWidth 是一个整型(int)变量。在下一行我们一 次声明了两个变量,中间只需要用逗号隔开。具体地说,第二行中把两个变量都定义为单 精度(float)变量,也就是说数字部分是包含分数的。虽然在这个例子中把 pictureWidth 与其他变量分别设定为不同类型,但要注意,一个整数和一个分数相乘结果是分数,这就
目录
第 1 章 程序是一系列指令............................ 3
第 2 章 没有注释?那可不行! ....................... 10
第 3 章 函数 ..................................... 12
第4章 第5章 第6章 第7章 第8章 第9章
1
第 0 章 在开始之前
我们为读者写了这本免费的读物,作为回报,在进入正题前还要谈谈关于促进 Mac 微 机发展的话题。每一位 Mac 微机的使用者都可以为促进自己钟爱的电脑平台的发展略尽绵 薄之力。这里将告诉你如何去做。
1、Mac 微机功能越强大,越容易令别人关注它。所以要及时浏览关于 Mac 微机的原创 网站,阅读 Mac 微机的杂志。当然还要学好 Objective-C 和 AppleScript。在工作上, AppleScript 能为你节约大量的时间和金钱。到网上找找我的书《AppleScript 初学者》 ( AppleScript for Absolute Starters ), 它 同 样 是 免 费 的 , 网 址 如 下 : /books
iOS移动应用开发入门教程
iOS移动应用开发入门教程随着智能手机的普及和移动应用的火爆,越来越多的人对iOS移动应用开发产生了兴趣。
作为目前市场上最受欢迎的移动操作系统之一,iOS开发具有广阔的前景和丰富的商业机会。
本文将针对初学者介绍基本的iOS移动应用开发入门教程,帮助大家快速入门。
一、准备工作在开始iOS移动应用开发之前,不仅需要具备一些基本的编程知识,还需要一台Mac电脑和最新版本的Xcode开发工具。
Xcode是苹果公司推出的一款集成开发环境,可以在Mac上进行iOS应用开发。
安装好Xcode后,我们可以创建新项目,并选择合适的应用模板。
二、开发语言iOS应用开发主要使用Objective-C和Swift两种编程语言。
Objective-C是一种传统的面向对象编程语言,而Swift是近年来苹果推出的全新编程语言,旨在提高代码的易读性和易写性。
对于初学者来说,推荐使用Swift进行开发,因为它语法简洁易懂,相对于Objective-C来说更容易入门。
三、界面设计iOS应用开发的一个重要方面是界面设计。
苹果提供了一套丰富的界面组件,开发者可以根据自己的需求选择合适的组件进行布局,从而实现精美的界面效果。
通过Xcode的可视化界面编辑器,我们可以直观地设计和调整界面元素的位置、大小和外观等属性。
此外,还可以使用Auto Layout技术,确保应用在不同设备上的自适应性。
四、逻辑开发iOS应用的逻辑开发主要通过编写源代码实现。
开发者可以根据应用的需求,使用Swift语言进行编写。
在Xcode中,我们可以创建多个源文件,将不同的功能模块进行代码分割,提高代码的可维护性。
逻辑开发包括处理用户输入、调用系统API、实现业务逻辑和持久化存储等方面。
通过良好的代码结构和设计模式,可以使代码更加清晰易读,提高开发效率。
五、测试和调试在开发完成后,我们需要对应用进行测试和调试,以确保其正常运行和稳定性。
Xcode提供了强大的调试工具,可以帮助我们快速定位和解决问题。
Apple苹果IOS开发Swift编程语言入门教程中文版
练习 ()
使用 来包含一个浮点数计算到字符串,并包含某人的名字来问候。
"[]" 创建一个数组和字典使用方括号 ,访问其元素则是通过方括号中的索引或键。
var shoppingList = ["catfish", "water", "tulips", "blue paint"] shoppingList[1] = "bottle of water"
m
你可以在循环中保持一个索引,通过 ".." 来表示索引范围或明确声明一个初始值、条 :
件、增量。这两个循环做相同的事情
var firstForLoop = 0 for i in 0..3 {
firstForLoop += i }
firstForLoop var secondForLoop = 0 for var i = 0; i < 3; ++i {
nil
"?"
包含一个 来指定值还不存在。写一个问号 在类型后表示值是可选的。
var optionalString: String? = "Hello" optionalString == nil
var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName {
let myConstant = 42
gashero注记 这里的常量定义类似于函数式编程语言中的变量,一次赋值后就无法修改。多多使用有益 健康。
iOS开发中如何快速上手Xcode 6
iOS开发中如何快速上手Xcode 6Xcode的每一次版本更新都专注于为开发人员带来更为强大的工具方案,帮助他们更为顺畅地完成应用程序构建。
在今年发布的Xcode 6版本当中,开发人员继续迎来更多软件设计与构建的全新方式。
在今天的教程中,我们将对Xocde 6中的新型与改进功能加以概述,同时介绍大家应如何将其应用到自己的开发工作当中。
1.Playgrounds在今年的WWDC大会上,苹果公司正式公布了Swift——一款面向苹果移动设备软件开发工作的全新编程语言。
为了配合新语言的诞生,Xcode 6新增了一项名为Playgrounds的功能——这其实是一套交互工作区,开发人员可以在此编写Swift代码并在无需将其运行在设备或者模拟器中的前提下获取实时运行效果反馈。
这对于Xcode来说无疑是一种很好的补充,现在各位可以在将自己的代码成果正式添加到主代码库内之前,以实验性方式快速便捷地掌握地实时运行效果。
2. Interface Builder今年WWDC大会的另一大主题议题在于构建自适应式应用程序。
相对于原本针对特定屏幕尺寸构建应用程序,苹果公司现在鼓励开发人员打造出能够忽略实际屏幕大小、自动与运行所在平台相适应的应用程序产品。
这一举措实际上源自最初诞生于iOS 6系统当中的Auto Layout及其数个后续版本,该方案允许开发人员直接创建能够同时运行在3.5英寸与4.0英寸屏幕上的应用方案。
如今这一机制得到了进一步改善,iOS开发人员已经能够打造出直接运行在全部受支持iPhone平台上的应用程序,其中包括新一代4.7英寸iPhone 6与5.5英寸iPhone 6 Plus——连iPad也可使用同一套代码库。
Interface Builder经历了一系列重大变更后才真正实现了对此类自适应式应用程序的开发支持能力。
同时添加的其它一些新功能还给用户界面的设计流程带来提升。
下面我们就来具体介绍其中出现的各项调整。
Xcode使用教程
Xcode使⽤教程当前Xcode 12.4都亲测过1.常⽤快捷键Mac键盘图标与对应快捷按键⌘——Command ( )⌃ ——Control⌥——Option (alt)⇧——Shift⇪——Caps Lock1.运⾏:command + R2.编译:command + B3.停⽌:command + .4.⼯程导航如图从左到右分别对应 command +1~8.常⽤的是:command+1 查看⼯程⽂件command+4 全局查找command+7 查看断点5.快速打开/隐藏实⽤⾯板mand + 0 (注意是“0”不是“o”)mand+option+0(zero)mand + shift + Y调试区域6.当前类⽂件查找 command + F7.快速跳转到类的特定⾏command + ⿏标左键control + command + ⿏标左键8.快速定位当前类在项⽬⽂件中的位置:command + shift + J9.类⽂件".hpp"与“.cpp”之间切换:control+command+↑/control+command+↓10.查看Apple⽂档command + shift +0(zero)11.清除控制台打印信息:command+K13.当前类⽅法/变量查找:Control+6(键⼊⽅法/变量名+Enter跳转)14.撤销/反撤销:command+z /command +shift +z15.光标操作:control+F: 向右⼀个字符(forward)control+B: 向左⼀个字符(backward)control+P: 前⼀⾏(previous)control+N: 后⼀⾏(next)control+A: 去⾏⾸ (ahead)control+E: 到⾏尾(end)control+T: 调换光标两边的字符(transpose)control+D: 删除光标右侧字符(delete)control+K: 删除本⾏剩余的字符(kill)16.整体位移代码:选中的代码 + command+[ :向左位移选中的代码 + command+]: 向右位移选中的代码 + command+option+[ :向上位移选中的代码 + command+option+]:向下位移补充:1.隐藏/打开Toolar :command+option+TToolbar2.收放⽅法体:command+option+←/command+option+→3.回到上⼀个/下⼀个打开的页⾯ control + command + ← / control + command + →4.New File :command + N5.创建新⼯程:command + shift + N补充:command + h 逐个最⼩化程序optio+command+H+M ⼀次性最⼩化。
xcode使用教程
xcode使用教程Xcode是开发iOS和macOS应用程序的集成开发环境(IDE)。
它提供了丰富的工具和功能,帮助开发者编写、调试和部署高质量的应用程序。
下面是一些使用Xcode的基本步骤和常见功能的简介。
1. 下载和安装Xcode:在App Store中搜索Xcode,并进行下载和安装。
安装完成后,您可以在“应用程序”文件夹中找到Xcode。
2. 创建新项目:打开Xcode,选择“创建新的Xcode项目”或通过快捷方式Command+N来创建一个新项目。
选择适合您的应用类型的模板,并填写必要的信息,如项目名称、组织名称和保存位置。
然后点击“下一步”。
3. 选择设备和操作系统:在“设备”下拉菜单中选择您想要在上面运行应用程序的设备,例如iPhone或iPad。
在“部署目标”下拉菜单中选择您的应用程序将要支持的最低操作系统版本。
4. 编写代码:Xcode使用Swift或Objective-C作为主要的编程语言。
您可以在左侧的“导航器”窗格中找到项目文件结构。
在源代码文件中编写和编辑代码。
5. 调试和运行应用程序:您可以使用模拟器来测试和运行您的应用程序。
在Xcode主窗口的顶部中央,有一个设备选择器,您可以选择您要在其上运行应用程序的模拟器或实际设备。
然后点击运行按钮(上方的三角形按钮)来构建和运行您的应用程序。
6. 调试应用程序:如果您的应用程序在运行过程中出现错误或异常情况,您可以使用Xcode的调试工具来找到问题所在。
您可以在源代码中设置断点,以便在特定的代码行暂停执行。
在调试期间,可以检查变量的值、查看堆栈跟踪等。
7. 构建和发布应用程序:当您准备好发布您的应用程序时,您需要从Xcode菜单中选择“Product”>“Archive”来构建应用程序的存档文件。
然后,您可以使用Xcode中的“分发”工具来创建应用程序的分发版本,并将其上传到App Store或通过其他渠道分享给用户。
Xcode iOS开发基础操作及界面介绍
Xcode iOS开发基础操作及界面介绍Xcode是苹果公司提供的一款集成开发环境(IDE),主要用于开发iOS、macOS、watchOS和tvOS应用程序。
对于不熟悉Xcode的初学者来说,本文将介绍一些基础操作以及界面布局,帮助读者快速入门iOS开发。
一、项目创建与工作区在打开Xcode后,首先进入的是工作区界面。
在这里,你可以创建新的项目或者打开已有的项目。
创建新项目时,可以选择不同的应用程序模板,如Single View App、Tabbed App、Navigation App等。
选择适合你开发需求的模板,填写相关信息后,即可创建一个新的项目。
工作区界面主要由多个面板组成,如导航器、编辑器、工具栏和调试器等。
这些面板可以自由调整位置和大小,以适应个人的工作习惯。
二、导航器面板在Xcode的导航器面板中,你可以管理项目的文件和资源。
其中,Project Navigator(项目导航器)用于显示项目文件的层次结构。
通过它,你可以方便地查找、添加、删除和移动文件。
另外,还有其他非常有用的导航器,如代码导航器、搜索导航器和版本控制导航器等。
它们可以帮助你在开发过程中更高效地浏览和编辑代码。
三、编辑器面板编辑器面板是iOS开发过程中最频繁使用的面板之一。
在这里,你可以编辑代码、设计界面、进行调试和编译等操作。
对于Objective-C或Swift代码的编写,Xcode提供了智能代码补全、语法检查、重构等功能,帮助开发者提高开发效率。
另外,Interface Builder是Xcode中的一个重要工具,用于设计界面。
你可以拖拽组件、调整属性、设置约束等,直观地构建用户界面。
四、工具栏Xcode工具栏位于界面的上方,提供了一些常用的快捷按钮。
比如,你可以通过"运行"按钮来构建和运行你的应用程序,在模拟器或真机上查看效果。
工具栏还包含一些调试相关的按钮,如打开调试器、暂停程序和查看变量等。
xcode入门、ios开发入门、iphone开发入门
Xcode入门神帖一、XCode、Objective-C、Cocoa说的是几样东西?答案:三样东西。
XCode:你可以把它看成是一个开发环境,就好像Visual Studio或者Netbeans或者SharpDevelop一样的玩意。
你可以将Interface Builder认为是Visual Studio中用来画界面的那部分功能单独提出来的程序。
Objective-C:这是一种语言,就好像c++是一种语言,Java是一种语言,c#是一种语言,莺歌历史也是一种语言一样。
Cocoa:是一大堆函数库,就好像MFC、.NET、Swing这类玩意,人家已经写好了一堆现成的东西,你只要知道怎么用就可以了。
有些人会比较容易混淆Objective-C和Cocoa,就好像有些人会混淆c#和.NET一样。
这两个东西真的是两个不一样的东西。
二、Objective-C是什么?你可以把它认为是语法稍稍有点不一样的c语言。
虽然第一眼望上去你可能会认为它是火星语,和你所认知的任何一种语言都不一样。
先简单列出一点差别:问题一:我在程序中看到大量的减号、中括号和NS****这种东西,他们是什么玩意儿?1 减号(或者加号)减号表示一个函数、或者方法、或者消息的开始,怎么说都行。
比如c#中,一个方法的写法可能是:private void hello(bool ishello){//OOXX}用Objective-C写出来就是-(void) hello:(BOOL)ishello{//OOXX}挺好懂的吧?不过在Objective-C里面没有public和private的概念,你可以认为全是public。
而用加号的意思就是其他函数可以直接调用这个类中的这个函数,而不用创建这个类的实例。
2 中括号中括号可以认为是如何调用你刚才写的这个方法,通常在Objective-C 里说“消息”。
比如C#里你可以这么写:this.hello(true);在Objective-C里,就要写成:[self hello:YES];3 NS****老乔当年被人挤兑出苹果,自立门户的时候做了个公司叫做N ext S tep,里面这一整套开发包很是让一些科学家们喜欢,而现在Mac OS用的就是N ext S tep这一套函数库。
快速入门iOS应用开发
快速入门iOS应用开发移动应用开发已经成为了目前IT行业中最热门和受欢迎的技能之一。
随着智能手机的普及,人们对于手机应用的需求也愈发旺盛。
在移动应用市场上,iOS平台是其中最具有竞争力的一个。
如何快速入门iOS应用开发成为了许多人心中的疑问。
本文将为大家介绍一些入门iOS开发的基本知识和步骤,希望能够帮助到那些对此感兴趣的朋友们。
首先,了解iOS平台是非常重要的。
iOS是由Apple开发的移动操作系统,它运行在iPhone、iPad和iPod Touch等设备上。
如果你对于这些设备已经有所了解,那么对于iOS应用开发也就有了一定的背景知识。
iOS应用开发使用的主要编程语言是Objective-C和Swift。
Objective-C是一种面向对象的编程语言,是iOS开发的基础。
而Swift是Apple在2014年推出的一种全新的编程语言,它更加现代化、易于学习和使用。
其次,选择合适的开发工具是入门iOS开发的重要一步。
Xcode是用于开发iOS应用的集成开发环境(IDE)。
你可以在Apple的官网上下载和安装最新版本的Xcode。
Xcode集成了各种开发工具,包括代码编辑器、调试工具和资源管理器等。
在Xcode中,你可以创建和管理项目,编写代码并进行调试。
此外,Xcode还提供了模拟器,可以在没有实际设备的情况下测试应用程序。
了解iOS开发的基本概念也是入门的关键。
在iOS应用开发中,界面是至关重要的。
你可以使用Interface Builder来设计应用程序的界面。
Interface Builder是Xcode中的一个可视化设计工具,可以通过拖拽组件的方式来创建应用界面。
在应用程序中,你可以使用各种组件,如按钮、标签和文本框等。
同时,你还需要学习如何处理用户输入、处理视图控制器、设计数据模型等基本概念。
编写代码是iOS应用开发的核心部分。
在编写代码之前,你需要了解一些基本的编程概念。
例如,掌握基本的语法、了解面向对象编程的概念、掌握条件和循环语句等。
iOS开发入门指南
iOS开发入门指南导语:iOS开发是指针对苹果公司的移动操作系统iOS进行应用程序开发的过程。
本文将为初学者提供一份简单易懂的iOS开发入门指南,帮助他们快速入门并掌握基本的开发技能。
一、理解iOS开发基础概念- 了解iOS操作系统的发展历程和特点- 了解iOS设备的硬件架构和规范- 了解iOS开发工具和开发环境二、学习iOS开发语言- Objective-C语言:掌握Objective-C语法和常用控件的使用方法- Swift语言:掌握Swift语法和特性,并了解其与Objective-C之间的相互调用方式- 比较Objective-C与Swift语言的优缺点,并选择合适的语言进行学习和开发三、掌握iOS开发的基本框架- UIKit框架:了解并掌握UIKit框架下各种控件的使用方法和属性设置- Core Data框架:学习使用Core Data实现数据持久化和管理- Core Animation框架:了解并掌握Core Animation框架下各种动画效果的实现方法- Foundation框架:掌握Foundation框架下各种类和方法的使用,例如字符串、日期、文件操作等四、学习iOS应用程序的架构设计- MVC架构模式:理解并掌握Model-View-Controller的设计思想和实现方法- 使用Interface Builder创建可视化界面,并通过代码与界面进行交互- 学习通过Storyboard和Segue进行页面跳转管理- 理解并掌握App Delegate和View Controller的生命周期五、应用调试和测试- 使用Xcode提供的调试工具调试应用程序,如断点调试、日志输出等- 使用模拟器和真机进行应用程序的测试和调试- 掌握应用程序崩溃日志的分析和解决方法六、学习iOS的网络编程- 掌握使用NSURLConnection和NSURLSession进行HTTP请求和响应的处理- 学习使用Socket编程实现网络通信- 了解并使用RESTful API进行Web服务的访问和数据交互七、学习iOS应用程序的发布和分发- 了解和掌握App Store开发者账号的注册和配置- 学习打包和签名应用程序,生成发布版本的IPA文件- 了解App Store审核和发布流程,确保应用程序能够正常上架八、持续学习和提升- 关注苹果官方文档和开发者社区,了解最新的iOS开发技术和趋势- 参与相关的开发者活动和交流会议,与其他开发者进行经验分享和交流- 利用各种在线课程和教程,不断学习和提升自己的开发技能结语:本文针对初学者提供了一份简单易懂的iOS开发入门指南,从基本概念到实际应用开发都进行了详细讲解。
Iphone-Xcode编程教程
在Save As: "MinutesToMidnightViewController" 点击: Save 点击: Merge
在右下角"Actions" 按下选(bottom right) "Select Left" 点击: 上方红色小圈关闭窗口 点击: Save
关闭所有merge 窗口
- (void)dealloc { [super dealloc]; }
-(void)updateLabel {
NSDate* now = [NSDate date];
int hour = 23 - [[now dateWithCalendarFormat:nil timeZone:nil] hourOfDay]; int min = 59 - [[now dateWithCalendarFormat:nil timeZone:nil] minuteOfHour];int sec = 59 - [[now dateWithCalendarFormat:nil timeZone:nil] secondOfMinute];
-(void)onTimer;
@property (nonatomic, retain) IBOutlet UIWindow *window;
Xcode使用教程详细讲解(全)上加下
Xcode使用教程详细讲解(上)(上篇)Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样需要要Xcode为你写Mac程序提供环境。
因此,如果你要成为Mac 程序的开发者,灵活运用Xcode工具是你必须做的第一步。
1)我们写程序时常常在源文件的头部添加copyright声明以及公司名称等等;而Xcode在创建文件时已经帮我们做了绝大部分工作,我们可能需要修改一下公司名称,因为xcode给不知道我们公司名称,它不可能预知一切,所以需要我们自己通过设置来告诉它。
那么我们如何做到这一点呢?因为xcode中没有有关公司名称的占位符,所以我们必须通过terminal使用命令来设置。
在使用这个命令之前我们来看看xcode为我们提供的默认文件头部注释:1.//2.// untitled.m3.// FilesOrganize4.//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 * untitled.h3 * Untitled4 *5 * Created by yan li on 8/29/09.6 * Copyright 2009 LiYanzhong. All rights reserved.7 *8 */2)使用编辑器的技巧a)如何关闭Xcode界面上的浏览器窗口?点击在Xcode工具栏上的最右边个Editor图标,可以打开或关闭Xcode中查找项目文件的浏览器。
使用Xcode进行iOS应用开发教程
使用Xcode进行iOS应用开发教程第一章:介绍Xcode和iOS应用开发Xcode是苹果公司提供的集成开发环境(IDE),用于开发iOS、macOS、watchOS和tvOS应用。
本教程将重点讲解如何使用Xcode进行iOS应用开发。
1.1 Xcode安装首先,需要前往苹果开发者官网下载最新版本的Xcode,并通过安装向导将其安装到您的开发机上。
安装完毕后,打开Xcode,您将看到主界面。
1.2 创建新项目点击Xcode主界面上的“Create a new Xcode project”,选择“Single View App”模板,填写项目名称和组织标识符等必要信息,点击“Next”按钮。
选择存储新项目的位置,并选择是否使用Git进行版本控制。
点击“Create”按钮。
第二章:Xcode工作流程和常用功能在本章中,将介绍Xcode的工作流程和一些常用的功能,帮助您更好地开始iOS应用开发。
2.1 导航器导航器是Xcode主界面左侧的面板,用于浏览项目文件和目录结构。
您可以在导航器中查看和编辑应用程序的源代码文件、资源文件和其他重要文件。
2.2 编辑器编辑器是Xcode主界面中央的面板,用于编写和编辑代码。
您可以在其中查看和修改您的应用程序的源代码文件。
编辑器支持语法高亮、自动补全、代码折叠等功能。
2.3 调试器调试器是Xcode提供的强大工具,用于调试应用程序的运行时错误。
您可以在调试器中设置断点、查看变量的值、单步执行代码等操作,以帮助您找到和修复错误。
2.4 模拟器模拟器是Xcode集成的模拟设备,用于在没有实际iOS设备的情况下运行和测试应用程序。
您可以选择不同的模拟器类型和版本,模拟不同的设备特性和操作系统版本。
第三章:创建界面和视图在本章中,将介绍如何使用Xcode创建iOS应用程序的界面和视图,包括用户界面设计工具、界面构建和布局等。
3.1 Interface Builder(界面构建器)Interface Builder是Xcode的一部分,用于创建和布局应用程序的用户界面。
xcode全中文教程(iOS开发快速入门利器)
介绍本教程向您演示如何创建一个简单的iPhone应用程序。
本文不打算对iPhone目前可用的特性作全面介绍,而是介绍一些技术,让您对基础开发过程有初步了解。
如果您刚开始使用Cocoa Touch进行iPhone开发,则您需要阅读本文档。
阅读之前,您需要大致了解计算机编程基础,尤其是要了解Objective-C。
如未曾用过该语言,则至少应通读学习Objective-C:入门教材。
本文档不是为了创建一个优雅漂亮的应用程序,而是为了向您描述:如何使用Xcode创建并管理一个工程基础设计模式和iPhone开发的基本技术Interface Builder使用入门如何让应用程序响应来自标准用户接口控件的用户输入另外,我们还在教程中指出其他一些文档。
只有阅读这些文档,您才能充分理解iPhone开发的工具和技术。
重要:为了学习本教程,您需要安装iPhone SDK和开发者工具,它们位于iPhone开发中心。
文档描述的工具包含在iPhone SDK v3.0里面—请检查一下Xcode版本,它不能低于3.1.3。
文档的组织方式本文档分为如下章节:“教程概述和设计模式”“创建您的工程”“添加一个视图控制器”“查看Nib文件”“配置视图”“实现视图控制器”“排除疑难”“下一步做什么?”下页教程概述和设计模式本章概述您将要创建的应用程序以及将会使用的设计模式。
教程概述在学习过程中,您将创建一个很简单的应用程序。
它含有一个文本字段,一个标签和一个按键。
您可以把名字输入到文本字段中,再按下按键,这时标签的文本就会变成“Hello, <Name>!”:尽管这是个很简单的应用程序,但它介绍了基本的设计模式、工具、以及利用Cocoa Touch进行iPhone开发的基础技术。
Cocoa Touch 包括UIKit和Foundation这两个框架。
当在iPhne OS上开发事件驱动的图形化应用程序时,您需要使用它们提供的工具和基本结构。
Xcoder教学手册(中文版)
BECOME AN XCODER T ' PPMS__________________________________________________ 4; 0 = 0C% *______________________________________5; 1 = 1A ?, < (+ _____________________________713 ; 2 = BD 2 @&8$ __________________________14 ; 3 = # ______________________________________________; 4 = OG _______________________________________20; 5 = KRI7 A _____________________________________2533 ; 6 = 9 - __________________________________________; 7 = ! while ".L- _______________________________36; 8 = 1 F ! ) / GUI (A ___________________39; 9 = > Q &_______________________________________55; 10 =_____________________________________ awakeFromNib 5961 ; 11 = +J______________________________________________ ; 12 = ______________________________________________6369 ; 13 = 5 ______________________________________________73 ; 14 = 3NTH:_________________________________________ ; 15 = 6 E4__________________________________________75BECOME AN XCODER /ă !m ñāñāApple ͸[ g?0]³® n Cocoa ¾=gãn _À£ C$~LÂn b7 Xcode n _÷t9£n Mac OS X fo£ )%1 Apple á nŽ ÇL Ö- »? X Mac ¾=¬ n; I~, : ¬£ Í? X¾=¬ ÍĂ . w » ,Z0 Objective-C VÈ Xcode ]¦ñ£¾=¬ n ú āN ± { £ )%zÞ' S?ÛOZ0o (GUI) n .¾= 6:ā·± { £ Ñ<Hz3 _²ÛOZ0o n¾= C9£āN. { £ Í v nÃÆ þJ;ʲ £ ] Éã ā, 8 ? :njGã ð« I~¨Æ £V ã Øyò 8 . *~ sôC<HZ0.<£ É an X ÏÉZ0< n Çq2Xý+ÓP zÿ£R ±Ì° ā E ^@ ª @ ÔØX Ç ¿aª @āX±Ìn 6] āXý+nÓ <A ]£ )%? §n梣ðan¯5 V$ða Xp@îā ©Øn?íÓ YËà"= ā. £µ)% Kð«>ìnc y. (M Äné\ ` (M a:Fn¾=è çu£ç n ÑP 9ÑĀ é\ R é\°0"|Ðäi ëÐ \< [4] ¯ né\°(M ^Ff % n¾=è ¯ n¤l P ÉZ0 @ëè]q2é\ enF \< [4.3] &qé\ [4] nª F 9ê¶Õrn¾=è# P É9¾=èg9Fn{ h Î BëÐ \<volume = baseArea * height; // [4.3]¾=¬ ~ û´n J }»£ Í U ,µã Xå VÜâõTÚÒ . ¦ng? £ºkóD ïÁā^. µðÉßxö¼foÅU ð«<H¬ ¾= \+ . ~Ù O=n g%£S?4Hü øùn ¹a Xcode 8A ¡ª ±Åd P zÿ£ āR ±Ì @ ª @n ÜâÒÒ Xé\ V$ݾ=è X Q]¥ W¤~<H×JnBECOME AN XCODER 8Į $~ · 0 ÃFa Ýt· 0 ÃFa Ýta WÙĆĄN¡g\ĥÕ² U EÉ ĊĬaË4lį Mac ĭ°bH c Macintosh i: Â2Ă ĜĜ *.Ê0)qZÍ + Ä!â ïè73 ) mĮ ñR% |1. ²ÛM i:² Mac ÊÛ y iX Oą Mac DN ĊéÖĝĨ) Mac ( û¤ Mac ģý)ę°Äã ë¨ åÐ ď¸ Objective-C v AppleScript g®5 ñāė:F9 Ï FğÈ i: AppleScript 0)æ Ü Þü Ĕ Ċ¬ċa WÙ #- AppleScript for Absolute Starters ²0)F) û^r°/books2. ĠÖÍ Macintosh ¦f lA& ;g c Âi: PC F ÝÈC ÖĒĈ Mac T ÷%| T MbG²F Ê0)Í Mac ¦f %| Iz²R «õ×Ď Sx² Mac ė:ÓKë _ mÓK ê ²®äÒµ² Mac :?¿íĢď ç´« ć ÎKíù distributed computing, DC Ñ)Y:½hdM¹: p ù¦ kI Folding@home SETI@home 5 ¾¯ :lÀö ¶ ²0) ì WÙ ÓK 1ª DC "ø g'ÝtL ù U = ½h DC "ø®)ÄV ĕ>ĩR Iz²8F² Mac R Ă ?Áíù¦ ÓK DC "ø®<oį.S DN ²® ä{áp58FR ½ ăäĖZp Mac s à Á DC ÑäF5 û ³B ç`L ùÇ Iz²/ Mac ðß ²0)±³Rô þ.5 BJ ²Ê0)qZ²ēĐ ½ Mac ðßÍ ³B DN n+ïè73 i: Ê0) p Mac ª°GH M»G©ò @(Ĥ DC "ø kIćď ¢£}ĚÔÔ ēĐ ²ÆĪ DC Ñ ĊÀº/projects.html½ Ħ ¥Ĝ 5ä, ī3. ĉu Macintosh 73 MÖÄÏ ¼Į 2 Q ÅÀĀĘ ¼Į ČL¸ó MĞÿ ÍjáfÕ²wi: ¼Į ÝÒ [i²é: ¼ĮP' ÆĪ5 Ċ]Ø5 ÝÒ D îp§ġ Ċč0¦ Íj²đU Ó úĉÌ lEɧġ4. ěÚ²i: ¼Į 2 Macintosh ¼Į6È 0R ÝÒ Êä ħÍjĕe ¼ĮBECOME AN XCODER I & 6 0 : /?$ )5. D9= 0 4B< 7- FE' Macintosh " ( > /8 3 ! # 3 %( . G+H > /@5 ,; A 0 DC * C'21 J /?$BECOME AN XCODER *Ċ v ° 1 » Â?¼ ¸Ew !° 1 »Â?¼ ¸Ew !=r« ô± æÈ^ «'ÉôƲ®´;a¬ «'É Õă6ó uzáÏ^ Â?µ å «T´;a¬Z : M~«wÂ?¦ÎÐ =3«:ýYAÈkô±È^ }¼ 1ëª^ ¹ è ¢ c+ Xcode eô±Â?µ ` Îû¨0F<² ċ«³ãqwúê S TÜäwÂ?µ üÛ gÁ w»Ñ 1 S J+ b «{§ëªw¤(çôeċ«±Þ Objective-C Â?íô «'É£b à Tà Ê2 + 6 == 3 * 4 Ô * :ÚÓþì +ey. Ôô D iC w ³ß x á y wĉç w5ß ç 8 Ùm «# Îjn æ ÎݶæË wVĉÍg ć2 + 6 = xy = 3 * 4Objective-C c+ĉç ĉç$ +e | y lØ w5>ñ d= ç> Objective-C % statement /L DÂ?í +eÅ ĉç l lw[1]x = 4;ĉç x ³ l 4 ¶ «ùÖsÌg : %ÄQw9 A Ô C_ 7 X% %ºå ÔHÄ æ N...îd [1] wÂ? :«¯ # ¾· G ÚÓÝ& P2 x©F 7BS å IwÂ? ß ïĆó compiler eT «ö w >Ă½@ ¸E«w Mac o ®Õw 0 á 1 ÝpïĆóC\ òĈá Õ ąö w > {§OĄw 7B«å Å& bð d= % æHÄQw C ¶¼ «c+ Ô¶ é w-w=r«:Â?í R Ô Â?í¼¿tïĆ _ y&¿tĂ½@«w Mac # ¥D wÂ? ÙI õ =rïĆóY÷tïĆ«wÂ?í &Î4«,Ç C¼=3S :)ew»ÑÎ[gw &Î×ÆhK«U"øâw9ÿÀĉç5(]ÝpïĆóC\`YA wÌÒ G fAÌÒwĉç5# ċÂ?íW qòĈ W q®Õ ¶:«å :Â?í ¡ā Āw J;BECOME AN XCODER (é i 1 ª ³=¬v §Dju³= jÜÊ8º ¢Æx ã b u g R!X (& ¢Æx ã debugging6? 8 (j³=Ñ P ¼ßJ\* x ¦ÏU>»¾jèÎ4Æ ]9 *^n-à ÌrjèÎ4Æ# Æx pictureWidth [2][2]pictureWidth = 8;O À¬¼êÓæ× ² h # +?é¼`³=¥|vo g} ½j _ Ë{g»j ½¬v³=Ñj Ív 3j .K >U>\* Ív> j èÎ4Æ pictureWidth É pictureWIDTH cm PictureWidth © y3 Ù Å] P 5 ® «:^HxèÎ4 _ «:0¨ Í _ T «:© Í:)·Ý ¬93 8Ò] [2] dV [¯¦ £q P 7~I ¥|³= 6x Í@!Üj# bÔ èÎ4Þv"M «: cmB :)á² > jA+^a4èÎ G ²>Z£qË{Û; @ÖÇP# Q& 0¨2! GvW ¼o ±Õ '¹Û;j {£qv jèÎ4Æ v Objective-C jp : .K8 Objective-C > »¾j: â+ 5® «:^ HxèÎ4 ]9 pictureWidth Þv<0j x {ptèÎ4j#çb så 8èÎ4 \* Í:) 9fÛ;¦Z q ³= j ã # °9f t{1Ø¡ Z£q ÔçN¦ w¿ :) \*Î: v¢ ¤j GvèÎ4Æ ¤\*Î:·Ý $ ¤\*jv: "_"v ZèÎ4j](ÐjèÎ4 door8k do8or c do_or¤jèÎ4 door 8 "M l, 8door ·ÝvÎ:såjèÎ4 Door8 ·Ýv Í:)8P kÁ{9FµèÎ P # *&¶C|È ¬êP zz*^|Èà Új³=ÑL v*^H¦/Yj³=Ñ [3][3]pictureWidth=8;pictureHeight=6;pictureSurfaceArea=pictureWidth*pictureHeight;»%j Óæ×Äl,X 8» EeèÎ4Æ äà:´´ % {ê³=ÑS¸ P # \*l,BECOME AN XCODER "Í ^ 1 v 1 j 8_i[4]pictureWidth = 8;pictureHeight = 6;pictureSurfaceArea = pictureWidth * pictureHeight;, nnºP [5] Sj ÁRvr[5]pictureWidth = 8;pictureHeight = 4.5;pictureSurfaceArea = pictureWidth * pictureHeight;6K·/ 2R®È> ¿· integers ² · NB,r [5.1] ² [5.2] nTP ¿·j#Qq· P.Du¡ps¼ 7 8_i kv|W_4·zd¢O# J Æ$P.É V Q ¥ ·Y{Å· floating-pointºP [5] _ 1¹M ~¨= Ç,Z»Ê½p F@ p, 1 O#wvÌ·)¯ u b:®§yC> &?¿·Ya{Å· ,¬£Xo_ ³ ¯l "h@ vÌ·"[6]int pictureWidth;float pictureHeight, pictureSurfaceArea;pictureWidth = 8;pictureHeight = 4.5;pictureSurfaceArea = pictureWidth * pictureHeight;, [6.1] 7 int b Ì· pictureWidth j v¿· integer 7 DuÆ # ¤ «RvÌ·)¯ 4h@ RvÌ· E±¸+´ r [6.2] b[ RvÌ· j float {Å· C> &? A · '_· , vP 3Å Ë_j pictureWidth ² RvÌ·j (_C> < nT_j .\ ¿· int ²{Å· float mt ¨° \ j v{Å· L jl ¶ Ħ Ì· pictureSur-faceArea h@l{Å· [6.2]l ¶»Ê½p`© vÌ· b_j¿·Y v3 · '_·U ¬£ 1µpO # '_¬£ ¾Í 6»Ê½flGv ªT_Ì·e} ¾Í 9 *l (_§yg> ,!P j int ² float µp (· _ ¾Í (_b% 1 »Ê½µpe}"¸· _ ¾ÍM #"¸_b%]L.\DupO#c Yµpc ±¸_·/U »Ê½Ã ue}_ 9 x u j HÀ 5 Du3Rv¥ v int ² float 3m;_g> # QÂ0E YE±¸ _·/ , -·_I u >j long long ² double <BECOME AN XCODER 'Ä V 1 m 3 ` 9W_AH`#l !r « ¹ClL m¤ =b m 3 fo E (u ¿`{W = <` ·1; F / &¹·pÂW}sµ7" ©{X¦W°8 ¼ ³ º²¯ ² ! `gW <`1S{X¦ mòWk ª `gW { ! xòkWµ ¾n @)Q5!)W:[7]unsigned int chocolateBarsInStock;$> W²* !rbg .7 unsigned int ! )/ £ unsigned int [?Y+²2 RP R¨{! 6\B mòFDk_N # [8][8]int x = 10;float y= 3.5, z = 42;! ½{¡c G» W/ZiWµI Cl 8 mjT¥® Cl! H) ,W ¢ '3WM`¥® operators J 8v&W²¸f®+ )J 8 T- )J 8 T/ )J 8tT* )J 8jTH) G¥® Cl! 8 0¬ÁWf® §1S{ddw W Objective-C 3 foW 3´ {x GqO !r`.b lÀz%2Q 4W3 fo y x x = x + 1; h ,b1µI [9] P [10] £iW±T[9]x++;[10]++x;KmI Y D x /aG|U ++ :Rò-ZP^`]heW ¶d ~ JWµI [11] [12][11]x = 10;BECOME AN XCODER ¤ F o 1 u Yx(vO r.GM y = 2 * (x++);[12]x = 10;y = 2 * (++x);& < [11] A*M sf- L y yB 20 , x yB 11 Q G &U [12.2] x &W 2 f- Jv" 1 %+z6] x yB 11 , y yB 22 < [12] Gx ( < [13] G\CQ#[13]x = 10;x++;y = 2 * x;%+ x(pTZ9 O5>YU $,P &4Y G¦ 4 Pq¥x( ¡ £ 'Cjm qYl[ 8* I /O b av !&+'Cj he n QHq j Ot{ /O4X wS2}j N = 7@ G"L 3 c= * / + - S) %+ 2 * 3 + 4 yB 10 |; N j g?"T 0 "¢G D 2 * (3 + 4) yB 14dD SjG :_1` %P & B ^ ]*: # RR VG < [14, 15][14]int x = 5, y = 12, ratio;ratio = y / x;[15]float x = 5, y = 12, ratio;ratio = y / x;& < [14] GkE zCO2 *& < [15] Go YkE zC Oj TG 2.4% O Yj a iG % GzCOo Y operand o Y ~- dDG 'Co Y O K % G-PO8*@ G[16]int x = 13, y = 5, remainder;remainder = x % y;( remainder / . 3 ! x . 2*y + 321 % 7 . 022 % 7 . 123 % 7 . 224 % 7 . 3 27 % 7 . 630 % 2 . 031 % 2 . 132 % 2 . 033 % 2 . 134 % 2 . 050 % 9 . 560 % 29 . 2$# 0 2&' % 31BECOME AN XCODER 4 ) 1 + "- , *BECOME AN XCODER *Ē v µ 2 ½V=ËÖ Äu®jµ 2 ½V=ËÖ Äu®jĈÊ`+=ÐÕwđî4ä P " ēP wÈ<óTe"Đm[T r´Ö [1][1]float pictureWidth, pictureHeight, pictureSurfaceArea;pictureWidth = 8.0;pictureHeight = 4.5;pictureSurfaceArea = pictureWidth * pictureHeight;2qP - oXôb ZÇÇwÀD *íìwÈ<óÑÌcÌ} íìÈ< w Ą[ $ ü & MòâwÒÊo w¦H Ă ò &û=W:w / ;t= ÎV= »]È<ó S& wê ËÖciK Öw È<óhl +cH ëw » ¼0Ó{ ë8Zċ P ª w čz] Î wÈ<ó! ËÖ [3 Ċ)c¨Ñ¬¹9 Ď7RÚ8» w Î 2ðw ;t ^wÈ<óÉI $ =ÂaËÖ ã ¿" Ow S ¶5 B wêU ËÖ öx®8×ËÖw ý d ±õ// » ËÖ8 Xcode ËÖ åCw ;tËÖ } [ ÛÌ 9D öQ&ph /* ç */ Î/* » ËÖA ÛÌ dD */ăÅ Xcode ã£ĉ H =K GP Ă ĆÇwès;F È<£ĉ #?Aà w£ĉ uä ËÖu outcomment ĈÊQ¼0wÈ<óph /* */ Î " ï w¤+ ËÖ¯ »¼0wÈ<óc fùw¼0 _Ò ÆÝH » <" ē+cą²¡ĉ ābcè ;t¸ËÖ¢cw¼0 k É đî " ! Dï wÈ<ócQø5w kÉ>đî ÃÙf V=ËÖ¢cw¼0 M*©ÝHËÖw m Ä"Y¾w }Ew %! Öďcès& hlH ë\ =þKw » 6 ê °Ã» È<ó8¥ ë A " .L *ßhw¡ĉ 8» ¼0wÈ<ó ÿ×J+ËÖc|Þ ]NČ nyÄu,È<ó °Ã cw\Ï ābcè ;t*8º îúgî[`+h 8÷( Ø·Á w ñ ÿ×8âéwÈ<ó ċ+ËÖËs§@ - = 8âéíìÈ<ó 1ì ËÖ =þKw &ÑiK´³ æ[ēÈ<º đ«Ü r( wôb[V=~ áP '©íì ð9wËÖ » 6 & ÔĀć8 ÍwèsBECOME AN XCODER 0ã p ¡ 3 ©a@¡ 3 ©a@b2x R bqªt±@Ð (A G ) b#PÍ Gq±@L ÚA ~Å Y M9 Objective-C q h\¯ R -¶sVq ±@|=K£Ü q=n ±@#P §I tq ) + ºu ß «TZ 0 Ý C* ~ 7q±@Ð% º; q±@ Ò! <B =nÁ A Ý ¬-¶;< : 0 Ï Îq Ý ¦| Èå 9 u l¬ºQ i_ : 9 C ¹! o^£Ü ±@Ð ä+U l 0 ݦ ÞqÂX Æ|S ) Ö+ q" ¿£ ^ ]= % A£ )% 1^ Ë· × . Ù}Ǧ[ )q²n|%vØq 6 Ì } ¦[±@Ð^ Ý| |;` ¦£Ê a@ function q )AE q8> % \1¦ 8 >^c'¦£a@Zä¦[±@Ð¥ G \1a@¦ »gu / 9CW ±@¨F A a@;` main()a@ ÑàÕº$T« main() ¦ a@ ¦Î+ rÆ; G®µ Á´e G±@ÐäR ¢ Û main() a@ [1][1]main(){// main() a@ ã Ó q±@нkC¤}) [1.1] â3 a@8Ê 4N "main" ^|, {ÀÄ& {À "main" | w >D main() a@|W ±@¨-¶ Aq M|¼ f¾E qa@ % 1 5K @^ + d8 {Àq?;|A+q¸¾q M|R ;/©°z Ô+ ; ^q [1.2,1.5] GA É {À R -¶SR q±@Ðj;¦É {À µ 5K Jk¦É {À µqmHÊ ¦ a@q ã R ¡ © [±@ÐÇ^ZS+ j ½b+ Ã$qJ½ [2][2]main(){// áÍ ;CyOfloat pictureWidth, pictureHeight, pictureSurfaceArea;// R se ¦[áÍ ³¦[áÍBECOME AN XCODER m 7 M 3 P-pictureWidth = 8.0;pictureHeight = 4.5;// 2 <E 9?_3V 9pictureSurfaceArea = pictureWidth * pictureHeight;}5(B kla T c. main() m R[Ae.Fi9'j (B`]>f%)U^9T c n(B,b CT L & +U^ F >9 main() - (BH : C circleArea() - [3][3]main(){float pictureWidth, pictureHeight, pictureSurfaceArea;pictureWidth = 8.0;pictureHeight = 4.5;pictureSurfaceArea = pictureWidth * pictureHeight;}circleArea() // [3.9]{}O;hQ #<(B @ [3.9] 3W09 1- g) $ "*K d6Y- 9ND<!4 main() - m 9 S \` - <I89(B9Z- circleArea() XJ main() - / n(B==> "G. [4][4]main(){float pictureWidth, pictureHeight, pictureSurfaceArea,circleRadius, circleSurfaceArea; // [4.4]pictureWidth = 8.0;pictureHeight = 4.5;circleRadius = 5.0; // [4.7]pictureSurfaceArea = pictureWidth * pictureHeight;BECOME AN XCODER $© Z v 3 {J2// ?j/6L ?j[J2circleSurfaceArea = circleArea(circleRadius); // [4.11]}X yk~2I [z)DB5* C G [3]?j float ¨ [4.4] D \O initialize ¨ circleRadius &< ! ki [4.7] | X [¡ c [4.11] 8 y}c circleArea() J2wL [. 0sS C ¨ +circleRadius wT / a !c k circleArea() J2[ argument ¨ circleRadius [irw J2 circleArea() J2 circleArea() @!S 8[ :>3 _ !# - return W ª?jlA/ G [3] [ circleArea() J2 H by'E [5]X Q * circleArea() J2[5]circleArea(float theRadius) // [5.1]{float theArea;// Mu pi h m r "theArea = 3.1416 * theRadius * theRadius; //[5.5]return theArea;}/ [5.1] ?jP circleArea() J2 f ko£ i:e t4K _ yk i w 1/N+e theRadius [¨ ?jF%v k¨ }c theArea H 1/ [5.5] g [ W ,6?j# / [5.3] F% / main J2 [4.4] [ YH^=! s X K¨ theRadius [^=c/[5.1] 8[ aR >3[ v [5.6] 8 - W L ykJ2[~2 d |_ /v [4.11] 8 ¨ circleSurfaceArea wxPeyki/ G [5] [J2 >3 p k. ?j¢B`PykJ2- [ n]; e9 ¦ f?jH:ykq: 7 B5(9¤«[ . ,6/y¥?j V!c §U float ]; [6.1][6]float circleArea(float theRadius){float theArea;theArea = 3.1416 * theRadius * theRadius;return theArea;}BECOME AN XCODER K g 3 l C+)"g [6.1] 1Lg ^*N L i^C+x&BL~` 8 theArea L\ VI float R6 5W ^q+hZ_ d v E2I main() C+ L circleSurfaceArea[4.11] -rX"L~`9 )/ B m<-e 'i > z:]=OH-LC+k Y 4)J<- T| oV vL 8@ ]VM L[7]int throwDice(){int noOfEyes;// B , I 1 D 6 tw Lq+return noOfEyes;}=OH-LC+ky&x ^\ )J ^C+<-&x\ I “void” R6 0“return” [ QV - nL )Jd@ Q return * Sm r 3 \G $[8]void beepXTimes(int x);{// p x . Lq+return;})J ^C+-(I ^ m F L pictureSurfaceArea() C+ #^ t Y j| s[9]float pictureSurfaceArea(float theWidth, float theHeight){// q+ '/}main() C+?{ A }Y&x ^ %/ < L - ^ return [ }Y&x 0 [10.10] BN i^C+u7c1<- 3b Uo main() C+&x ^ :] v' main() P "int" [10.1] :];f'H-Lq+ !' a[10]BECOME AN XCODER $¯ [ z 3 O/int main(){float pictureWidth, pictureHeight, pictureSurfaceArea,circleRadius, circleSurfaceArea;pictureWidth = 8;pictureHeight = 4.5;circleRadius = 5.0;pictureSurfaceArea = pictureWidth * pictureHeight;circleSurfaceArea = circleArea(circleRadius);return0; // [10.10]}float circleArea(float theRadius) // [10.13]{float theArea;theArea = 3.1416 * theRadius * theRadius;return theArea;}.w- L [10] VF Bm-z [10.1] 50n main() O/ -z [10.13] 50 n4 T \O/ .YBm¡¬}' / ¡¬¤ t M -z [10.9] 5 ¡¬¤ ` " ] 0&7+g circleArea() \O/ g hrM¡¬¤8 v main() O/ S®Q ci Pfn" §\X6 " )©® 3 ¦ w n«< warning j G¡¬¤ j- = int main() \k _ O/`< function declaration ; [11.1] }D0 >¨ " z [10.13] 5 s @ ![11]float circleArea(float theRadius); // O/`<int main(){¢Z /\N ~'H#* ¢u£ L [10]BmbA jM \¡¬}n / 9ej(C J M\ Ix{y?Bm /o aªwC^d / #M\ )%UEq- Bm\ / p0n rectangleArea() O/ l L [12] \ 3}nO/ -Bm\ main() O/ R ;KBmW- nO/ \ / |% 1 } e0¥:\ ,g.2 MBECOME AN XCODER .Ü n 3 ¤b@main() b@´Û » jÎÚ >l -±À o«@Ì × ¡´ÝU$ ×& Ii «@ J o LÛ j\ :~ & ´ª +Ii| b@ :C / ®d ¤o} sHo * D)Ä Ñ}b@ o *O& ¡Ý§U ×o LÛ j = ¡ £ ³Ó,'z¶[12]float rectangleArea(float length, float width){return (length * width);}> hX <¿¡ËoÖ¦^ & ´A *¦ * [12.3] 7 ÂZ²;l T u< [10.15] ]/ Zt- oÛÊtheArea){~ 8 1Í>J<b @ xPÛÊÔ©T <¡¤· E fµob@ypÞ K{+Ài ¸ 3[{t AÐNo Y¨{ &! V b@v ÈÙc(+o«@Ì ) WAVÛ¡ b@oxP 2O+ o F o¹Ò^_à &!VÛb@ oÛÊ9Á K{+v ©. ¼L D ¡ Q5 ÈÙ«@oa"¢4 a" &!ÉÇ¡ b@ D &!<Q5 ¸+ ¢¼Lo m ] /+ hÄ q½o)A>J]/¡ b@ ¨{ ¸¡ b@o9?¡ b@o Ê Ê °R! wM¡ b@²; Å S Ïo ! lowM<Í^ [12] ¡\¬ M{rectangleArea` Ê £{ ÕÊ float #rs #rÆ¡ b@²; | kG Dl{ ÕÊ float wM &!0 * [12.1] o ? q<b@ o«@Ì «@ ¾Ø¯_ ºa"b@¾Ø ¡{ Objective-C ¥ &g o% < ¤ T 6B ¡ F~ K{ < T ¯e Xcode Z F o«@ [11]BECOME AN XCODER #¦ V y 4 +,/y 4+,/?h /?hW 4 5 E1W k ;a?hGC5vnd` A?hWe S¥' K 5||00W U A S¥'/ /~"m ?hsH$ i Cocoa O IWL4 NSLog() L4 ~aiR £ .bx/us $*b dAuW S "+," M 7 NY ): 4NSLog() L4 da}eK¥'¢ ol 7 a$K¡ 4 SW ;a.b jQH$ O ?h/"m W$UK¥'?hW S !u Cocoa B t _ us H$Bb W@§?hKcc NSLog() L4d` H$[1]int main(){NSLog(@"Julia is a pretty actress.");return0;}r8 _ J [1] Wf § 3 "Julia is a pretty actress." ¥' K P @" " W 3{ b39 stringq 39"F NSLog() L4+, |0¤ W o J2&\W 4- £JK /?WDz 4 [1] W> ¡ 22005-12-22 17:39:23.084 test[399] Julia is a pretty actress.i39 = N0i3 characterT /w KW J 5 main() L4 Wgdf {+[2]NSLog(@"");NSLog(@" ");f [2.1] = i3 { bX39 empty string (< WZ]b f[2.2] G[X39 cpK^ = iX% space .6~i39WZ]a 1BECOME AN XCODER '² [ } 4 -.0§04; Go>\4 B-J6om\ «HI gvM³Ck# \ _ l4-.L \ 9 lom\ ¢% ALh# [3.1] l ¢b \n ] 94[3]NSLog(@"Julia is a pretty \nactress.");{0¨ XfrI3 "6e¯\¨ -Julia is a prettyactress.0 [3.1] \ z¤ d~ escape 4 $@ NSLog() K5 l4 b q( I-.L§ \4 8b6om \4 0&H "n" ] " Q 9"0cGyZ x g. l z¤L§ 2 bls 3X l<0 z¤_i\4 6om E` p. l z¤O Ck"g0 z¤\^iF b_i V ! l z¤? @ NSLog() K5 l } l z¤ +? ®1 I\ l bg. I\ 8 $\,=om © gT| Sb l£H[4]NSLog(@"Julia is a pretty actress.\\n");h# [4.1] t9 _\ X bJulia is a pretty actress.\nL)^d Ck"6±*PR\4; {0³CkD _\ X.L§[5]int x, integerToDisplay;x = 1;integerToDisplay = 5 + x;NSLog(@"The value of the integer is %d.", integerToDisplay);¥Y 0 a Ck6 l4; l l° / l4; A G6¦\W: %d z¤ ¡ 7 4 % 6o>\ $_i l d deci-mal number \ª t9 _ 0¨ %d U0\< u _\W: + ?° integerToDisplay \j t9£H [5] wLThe value of the integer is 6.g±*n¬ x% ( %f N %d[6]BECOME AN XCODER B d 4 i!"% {float x, floatToDisplay;x = 12345.09876;floatToDisplay = x/3.1416;NSLog(@"The value of the float is %f.", floatToDisplay);Q & .C)Y ( MCh ;4@` 'ArQ 9.C)Y ( ` vQ3 .2 ?: % ~ f q jz Ug[7]float x, floatToDisplay;x = 12345.09876;floatToDisplay = x/3.1416;NSLog(@"The value of the float is %.2f.", floatToDisplay);mM u`Dx'/T R} M ` fsrQL X VG\ rz Xo ~ tK kG 'A`Q|HC g5 V `s1b%9 C VwZ)p<=C K ` % % ~ f q >F % ~ d q 8N=gX K l+ 'A`N= C K VC K [ _sa VC K[8]int x = 123456;NSLog(@"%2d", x);NSLog(@"%4d", x);NSLog(@"%6d", x);NSLog(@"%8d", x);7 [8] )p' C123456123456123456123456% 9XS [8.1, 8.2] 2WJ0nQ C V6 CEq @OEqje, ^ )S [8.4] N=C K gX V $*2WP: CE c Gy COI]ngX VCEq#[N=Q C K~ C. O -C[9]float x = 1234.5678NSLog(@"Reserve a space of 10, and show 2 significant digits.");NSLog(@"%10.2d", x);BECOME AN XCODER B _ 4 b"#% upe K &= Q :!,]$&vG.CyO J C [10.3] -J\ k{E) pC5 %d w %f 7z>sSG. int float[10]int x = 8;float pi = 3.1416;NSLog(@"The integer value is %d, whereas the float value is %f.", x, pi);t yG.5 {C`qJHMKC '@\4_ Q2 _ Q TdA {C 6'[10b]int x = 8;float pi = 3.1416;NSLog(@"The integer value is %f, whereas the float value is %f.", x, pi);h "CThe integer value is 0.000000, whereas the float value is 0.000000.^%j Y*3PC_ Qf( c QX w Qrg 3PCf(x NSLog() aQ 8(m n VD3P0i /F C{J x KW9 3PCf( k0i} l import 1 NSLog() 8(C p8(R ~5 NCL#import <Foundation/Foundation.h>aQL kJ3Pf(C_ L p3P4% b 9C;)?+<% U I 3P[9 NCf(| 3PZo% bY*[11]#import <Foundation/Foundation.h>float circleArea(float theRadius);float rectangleArea(float width, float height);int main(){float pictureWidth, pictureHeight, pictureSurfaceArea,circleRadius, circleSurfaceArea;pictureWidth = 8.0;pictureHeight = 4.5;circleRadius = 5.0;pictureSurfaceArea = rectangleArea(pictureWidth, pictureHeight);circleSurfaceArea = circleArea(circleRadius);。
Xcode使用教程详细讲解
Xcode使用教程详细讲解(上)2011-07-06 10:32 佚名互联网我要评论()字号: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.m3.// FilesOrganize4.//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 PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "LiYanzhong";}'注意上面的命令是在terminal命令行的同一行,而不是两行,这里是因为命令太长所导致。
iOS应用开发入门指南
iOS应用开发入门指南近年来,随着智能手机的普及和移动互联网的发展,iOS应用开发成为了一个备受关注的领域。
如果你对移动应用开发感兴趣,想要成为一名iOS开发者,那么本文将为你提供一个入门指南,帮助你快速理解iOS开发的基本知识和技能。
一、概述iOS是苹果公司开发的操作系统,其应用程序都是以Objective-C或Swift编程语言编写的。
要开始进行iOS应用开发,你需要具备以下基本知识:1. 编程语言:Objective-C或Swift。
Objective-C是iOS开发的主要编程语言,而Swift则是近年来推出的一种新的编程语言,更加现代化且易于学习和使用。
2. 开发工具:Xcode。
Xcode是苹果公司开发的集成开发环境(IDE),是进行iOS应用开发的主要工具。
它集成了代码编辑器、调试器、编译器等功能,可以帮助你高效地开发iOS应用。
3. 应用框架:iOS SDK。
iOS SDK是苹果公司为开发iOS应用提供的一套开发框架,包含了丰富的API和工具,可以帮助你轻松构建各种功能强大的iOS应用。
二、学习资源要学习iOS应用开发,你可以参考以下学习资源:1. 官方文档:苹果官方提供了详细的iOS开发文档,包括编程指南、API参考等等。
你可以通过苹果的开发者网站获取这些文档,并按照其中的指导进行学习和实践。
2. 在线教程:有许多在线教程可以帮助你学习iOS开发,例如Ray Wenderlich的网站、Stack Overflow等。
这些教程通常包含了丰富的示例代码和实践项目,可以帮助你更好地理解和应用所学知识。
3. 社区论坛:iOS开发有着庞大的社区和活跃的论坛,你可以在这些论坛上向其他开发者请教问题、分享经验。
这些交流平台包括CocoaChina、iOSDevWeekly等。
三、基本知识在开始开发iOS应用之前,你需要了解以下基本知识:1. 视图控制器(ViewController):在iOS应用中,视图控制器是负责管理用户界面的核心组件。
xcode使用方法
xcode使用方法
Xcode是由苹果电脑公司推出的集编程,调试,可视化等多功能于一体的开发工具,主要用于开发Mac OS X和iOS应用程序,他拥有功能强大的代码编写,调试,可视化,设计等功能。
Xcode安装完毕后,可通过Finder应用程序文件夹打开Xcode。
双击Xcode图标,就可以进入Xcode开发环境。
Xcode窗口主要分为左侧文件列表窗口、上部工具窗口、中央编辑窗口和底部调试窗口三大部分。
左侧文件列表窗口可以显示当前项目的整个文件结构和类的继承关系;
上部工具栏窗口,主要提供了各种处理,如编译,运行,断点调试,自动完成,选择终端和模拟器等;
中央的编辑窗口,嵌有代码编辑器,可以编辑运行程序的代码;
底部调试窗口,可以查看日志,可以查看和调试运行状态等。
使用Xcode可以轻松快速地完成App开发工作,之前以流水线工作落下的所有步骤现在可以在Xcode里一次完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
介绍本教程向您演示如何创建一个简单的iPhone应用程序。
本文不打算对iPhone目前可用的特性作全面介绍,而是介绍一些技术,让您对基础开发过程有初步了解。
如果您刚开始使用Cocoa Touch进行iPhone开发,则您需要阅读本文档。
阅读之前,您需要大致了解计算机编程基础,尤其是要了解Objective-C。
如未曾用过该语言,则至少应通读学习Objective-C:入门教材。
本文档不是为了创建一个优雅漂亮的应用程序,而是为了向您描述:如何使用Xcode创建并管理一个工程基础设计模式和iPhone开发的基本技术Interface Builder使用入门如何让应用程序响应来自标准用户接口控件的用户输入另外,我们还在教程中指出其他一些文档。
只有阅读这些文档,您才能充分理解iPhone开发的工具和技术。
重要:为了学习本教程,您需要安装iPhone SDK和开发者工具,它们位于iPhone开发中心。
文档描述的工具包含在iPhone SDK v3.0里面—请检查一下Xcode版本,它不能低于3.1.3。
文档的组织方式本文档分为如下章节:“教程概述和设计模式”“创建您的工程”“添加一个视图控制器”“查看Nib文件”“配置视图”“实现视图控制器”“排除疑难”“下一步做什么?”下页教程概述和设计模式本章概述您将要创建的应用程序以及将会使用的设计模式。
教程概述在学习过程中,您将创建一个很简单的应用程序。
它含有一个文本字段,一个标签和一个按键。
您可以把名字输入到文本字段中,再按下按键,这时标签的文本就会变成“Hello, <Name>!”:尽管这是个很简单的应用程序,但它介绍了基本的设计模式、工具、以及利用Cocoa Touch进行iPhone开发的基础技术。
Cocoa Touch 包括UIKit和Foundation这两个框架。
当在iPhne OS上开发事件驱动的图形化应用程序时,您需要使用它们提供的工具和基本结构。
同时,Cocoa Touch还包含其他几个框架,它们提供一些基本的服务,可用于访问设备的特色内容,例如访问用户的联系人。
如需要进一步了解Cocoa Touch及其在哪些方面适应于iPhone OS,请阅读iPhone OS技术概览。
另外,我们将在“设计模式”一节中描述您将使用的主要的设计模式。
虽然本教程不太顾及用户界面,但应用程序的表现形式是其获得成功的关键。
您应该阅读iPhone人机接口指南并且研究基于本文档的样例代码(HelloWorld),这样您才能明白如何改善用户接口,以使其成为一个成熟的应用程序。
同时,您也将了解视图控制器如何工作以及它如何同iPhone应用程序的的架构相适应。
设计模式请务必阅读Cocoa基础指南的设计模式这一章。
您将使用主要的模式如下:委托模型视图控制器目标-动作下面对这些模式作简单介绍并且指出应用程序在什么地方会使用它们。
委托委托模式是一个对象周期性地向被指定为其委托的另一个对象发送消息,向其请求输入或者通知某件事情正在发生。
该模式可替换类继承来对可复用对象的功能进行扩展。
在本文将要创建的应用程序中,应用程序对象会向其委托发送消息,通知它主要的启动例程已经完成并且定制的配置可开始执行。
为了建立并管理视图,委托会创建一个控制器实例。
另外,当用户点击Return按键后,文本字段也会通知它的委托(即所创建的控制器对象)。
委托方法通常会集中在一起形成一份协议。
一份协议基本上就是一个方法的列表。
如果一个类遵循某个协议,则它要保证实现协议所要求的方法(有些方法可选择实现与否)。
委托协议规定了一个对象可以发送给委托的所有消息。
如果需要进一步了解协议及其在Objective-C中的作用,请查看Objective-C 编程语言的协议。
模型-视图-控制器模型-视图-控制器 (或者“MVC”)模式将应用程序中的对象设定为三种角色。
模型对象表示数据。
例如,在一款游戏中,SpaceShips和Rockets是模型对象,在一个用于生产的应用中,ToDo项和Contacts是模型对象,在一个绘画应用中,Circles或Squares是模型对象。
本文将创建的应用程序用到的数据非常简单-仅仅是一个字符串-并且该字符串只在一个方法中使用,因此,严格说,我们甚至没有必要在程序中使用模型对象,但是程序所用到的设计原理却非常重要。
在其他的应用程序中,模型对象将会更加复杂并且可以在多个地方进行访问。
视图对象知道如何显示数据(模型),并且它们有可能会允许用户对数据进行编辑。
在本文将要创建的应用程序中,您需要一个主视图来包含其它几个视图—一个文本字段,它用于捕获用户输入信息;第二个文本字段,它用于显示文本,而文本内容则是基于用户的输入;另外还需要一个按键,用户利用它来告知我们第二个文本字段应该被更新。
控制器对象位于模型和视图之间。
在本文将要创建的应用程序中,控制器对象将会从输入文本字段中取得数据,并把数据存放在一个字符串中,然后再把第二个文本字段的内容更新成恰当的值,更新操作则由按键发送出来的动作触发。
目标-动作目标-动作机制允许一个控件对象(诸如按键或滑动条) 向另外一个对象发送一条消息(即动作),以之作为对某个用户事件(例如一个点击事件或者一个敲击事件)的响应。
接收到消息的对象则可以对消息进行解释,并将其作为一个特定于应用程序的指令进行处理。
在本文将要创建的应用程序中,当按键被敲击时,它会通知控制器根据用户的输入更新模型和视图。
下页上页创建您的工程在本章,您将使用Xcode创建前面所说的工程,同时还将查明应用程序的启动过程。
Xcode我们主要利用Xcode来创建iPhone应用程序,它是苹果的IDE(集成开发环境)。
您也可以利用它来创建各种不同类型的工程,包括Cocoa以及命令行工具。
请注意:本书,我们约定>> 表示一个段落的开始(有时,该段落包含其后的无序列表),而段落内容是教程里需要您执行的操作。
代码列表不显示Xcode的模板文件里的注释。
>> 启动Xcode(缺省情况下,Xcode位于/Developer/Applictions里面),然后请选择File > New Project,这样就可以创建一个新工程。
您应该会看到一个新的窗口,它和下图相似:请注意:如果您没有看到“Use Core Data for storage”这一选项,则请您务必您安装iPhone OS SDK 3.0版本—您应该安装Xcode3.1.3或者更高的版本。
>> 请选中 Window-Based Application 并点击 Choose按键。
(请不要勾选“Use Core Data for storage”,本例不使用Core Data机制。
)完成上述步骤后,屏幕会出现一张表格。
请在上面选择工程的存储位置。
>> 请选择一个合适的位置(例如您可以放在桌面也可以放在一个定制的工程目录),然后为工程添加一个名称—HelloWorld—再点击保存按键。
请注意:在后续章节中,我们假定您将工程命名为HelloWorld,因此应用程序的委托类就叫做HelloWorldAppDelegate。
如果使用其他名称,则应用程序委托类的名称将为YourProjectName AppDelegate。
完成上述步骤后,您将看到如下的新工程窗口:如果以前未曾用过 Xcode,则请花点时间来研究下该应用。
请阅读Xcode工作空间指南,它可以帮助您理解工程窗口的组织方式以及如何执行诸如编辑和保存文件这样的基本任务。
现在,您可以链编并运行程序,这样就能看到模拟器的外观。
>> 请选择 Build > Build and Go (Run)或者点击工具栏中的 Build and Go按键。
iPhone模拟器应该会自动启动。
当您的应用程序启动后,您只看到一个白色屏幕。
如希望了解白色的屏幕从何而来,则您需先了解应用程序如何启动。
>> 退出模拟器。
应用程序引导您创建的模板工程已设置了基本的应用程序环境。
它创建一个应用程序对象,将应用程序和窗口服务器连接起来,建立一个运行循环以及其他等等。
大部分的工作通过UIApplicationMain函数完成,请看图 2-1。
图 2-1 应用程序引导main.m文件中的main函数会调用UIApplicationMain函数:int retVal = UIApplicationMain(argc, argv, nil, nil);该函数将会创建一个UIApplicaion类的实例。
同时它会搜索应用程序的Info.plist属性列表文件。
Info.plist文件是一部字典,它包含诸如应用程序名称、图标这样的信息。
它也可以包含应用程序对象应该加载的nib 文件的名称,该名称由NSMainNibFile键指定。
Nib文件含有一份用户接口元素及其他对象的档案—您将在后续章节进一步了解Nib文件的知识。
本工程的Info.plist文件具有下面的内容:<key>NSMainNibFile</key><string>MainWindow</string>这表明应用程序启动时将会加载MainWindow nib文件。
>> 如希望查看nib文件,请双击工程窗口Resource group中的MainWindow.xib文件。
(虽然该文件的扩展名为“xib”,但是我们习惯称之为“nib 文件”)。
Interface Builder将会启动并打开该文件。
Interface Builder文档包含四个对象:一个文件拥有者代理对象。
实际上,文件拥有者对象是UIApplication实例—我们将在“文件拥有者”一节讨论该对象。
一个第一响应者代理对象。
本教材并未使用第一响应者,但是您可以阅读i iPhone应用程序的编程指南中的事件处理以了解更多信息。
一个HelloWorldAppDelegate的实例,它会被设置成应用程序的委托。
我们将在下一节讨论委托。
一个窗口。
它被设置为白色背景、启动时可见。
应用程序启动时,您看到的窗口就是它。
应用程序完成启动后,您可以执行附加定制。
下图描述一种通用模式-您将在下一章使用它:应用程序对象在完成启动后会向委托发送applicationDidFinishLaunching:消息。
通常情况下,委托不是自己配置用户接口,而是创建一个视图控制器对象(一种特定的控制器,它负责管理一个视图—遵循“模型-视图-控制器”描述的模型-视图-控制器设计模式)。
然后委托向视图控制器请求视图(这个视图由视图控制器根据要求创建),并将其添加成窗口的子视图。