《深入浅出iPhone/iPad开发(第2版)》——你已经创建了自己的第一个iPhone应用程序!

你已经创建了自己的第一个iPhone应用程序!
深入浅出iPhone/iPad开发(第2版)
所有的部分都连接在一起。

描述界面。

iDecide由2个nib组成:MainWindow.xib和iDecideViewController.xib。合在一起,它们是用户看到的UI。

视图在视图控制器中被连接到代码。

我们的视图通过界面构建器被连接到实现代码,使用的是IBOutlets和IBActions。IBOutlets给予我们到UI组件的引用,而IBActions在事件发生时被调用。

在视图控制器中实现我们的应用程序的行为。

遵循MVC模式(或者实际上只是VC模式),我们拥有在视图控制器中实现的所有的行为,清晰地与视图本身分离开。如果需要更新,视图控制器使用IBOutlets返回我们的实际UI控件。

界面构建器创建nib文件(使用.xib扩展名),并用XML描述GUI。
nib文件通过CocoaaTouch框架加载,并在运行时变成CocoaaTouch类的具体实例。
为了将在一个nib中描述的组件连接到你的代码,你使用IBOutlets和IBActions。
Xcode是为应用程序维护你的代码和文件的地方。
Xcode是你的项目开发的中心,并为编辑你的代码,创建你的应用程序,并在运行它时进行调试提供支持。
iPhone模拟器让你可以不需要真正的设备,而只在Mac上测试你的应用程序。
这里没有愚蠢的问题
问:文件的所有者是什么意思?

答:界面构建器期望什么类都有个nib文件的所有者。你可以改变该类在界面构建器中认为的是什么,但是默认的是,一个由Xcode主要视图控制器创建的新建立的项目,便是通过Xcode创建主要视图的文件所有者。这就是为什么我们没有改变任何东西的原因。由于文件的所有者是我们的iDecideViewController建立的,界面构建器查看iDecideViewController的头文件,并理解为我们有一个名为descriptionText的IBOutlet和一个名为buttonPressed的IBAction。当你连接UILabel的引用接口到文件所有者descriptionText时,界面构建器保存必要的信息,以便当nib通过应用程序被加载时,在我们的iDecideViewController中引用会被正确设置。同样的事情也发生在TouchUpInside事件,除了在这种情况下,不是一个组件连接一个引用,而是一个组件的事件连接到一个应该被调用的方法。

注意(界面构建器的类期望会被加载到nib,但并不意味着其他的类不能尝试加载),如果那个类没有必要的属性和方法,它只是可能工作得不好。

问:为什么我们的新文本字符串前面会有一个@?

答:CocoaaTouch框架为它的文本字符串使用一个字符串类名为NSString。由于它是如此普遍,Objective-C内置支持从常量创建它们。如果你表示一个字符串常量,则应该在NSString之前放置一个@字符。否则,它只是一个类似C或C++中的普通char*。

问:我们已经介绍的内容有多少是专门针对iPhone的?为iPod Touch或iPad做开发会有很大不同吗?

答:不全是!开发iOS的一个好处是,大部分为一种iOS设备创建的东西可以直接应用到另一种iOS设备上。你需要关心的是相关设备的专用硬件能力(例如,尝试在一款较旧的iPod Touch或iPad上使用摄像机功能是不会工作的),以及你的视图与图像的屏幕分辨率是否需要改变,但除此之外,为不同设备做开发还有更多你需要注意的。

如果你在脑海中坚持MVC模式,并确保从视图中分离出了逻辑,这会使你为应用程序添加新视图变得更加容易。

问:Xcode实际上是怎么构建应用程序的?

答:我们打算在接下来的内容中来更多地讲一讲。简单表述为,Xcode可以集齐所有你的资源和代码,将它们连接在一起,然后最终糅合出一个不错的程序,放入你的iOS设备上。

问:为什么我一直听到界面构建器?它究竟是什么?

答:在以前,Xcode 4的视图在一个单独的应用程序中被编辑,叫做界面构建器。现在它是Xcode的一部分,实际上不再叫界面构建器。由于需要过渡,人们可能依旧在工作中或聊天中称之为IB(界面构建器)。

问:当视图被编译时,为什么还是.xib文件?难道不该改变点什么吗?

答:在编译后,.xib文件实际上是.nib文件的二进制形式。

问:我不断听到的“无正式文件的API”究竟是什么?

答:它们是苹果使用的私有方法,但是你不能用。多任务就是一个例子。它刚刚成为可供开发人员在iOS 4中使用的方法,但一些苹果的应用程序已经能够从一开始就在后台运行(例如,当你切换到其他应用程序的时候,iPod应用程序不会停止播放)。

你通常看到当开发人员试图自定义一个标准的iOS控件或者改变一个物理按键的作用时,会触碰到无正式文件的私有方法。不要这样做。苹果会在审核期间查出来,并拒绝让你的应用程序通过。苹果保护这些API是保护它们平台的一部分,并且现在的无正式文件也许会在未来允许使用。

你的任务是从游泳池中选择文件名称,并遵循图中的意思把它们放入相应的空白行中。一个文件名不能使用两次,且文件名称不必全部使用。你的目标是完成该图,使该图解表示出iDecide的设计过程。

exercise_pool_chair.jpg游泳池解谜答案
你的任务是从游泳池中选择文件名称,并遵循图中的意思把它们放入相应的空白行中。你不能使用相同的文件名称,且文件名称不能全部使用。你的目标是完成该图,使该图解表示出iDecide的设计过程。

开动脑筋,思考那些我们在这一章中使用的新术语对应的英文单词。

4.一些不能依靠模拟器测试的东西。

5.这是用来建立一个从实现代码到视图的输出连接。

7.该术语用来描述一个iPhone应用程序中的每一个屏幕。

8.用于编写iPhone应用程序的框架。

10.在应用程序中用于组织图形的文件夹。

12.对iPhone应用程序使用的IDE名称。

13.在Xcode中使用,以提供类的访问。

纵向的

1.用来编写iPhone应用程序的语言。

2.用来在台式机上测试应用程序。

3.用于接收代码中的事件,并触发一些事情。

6.这是一个编辑器的名字,用于Objective-C。

9.iPhone是这种类型的设备。

11.用于创建视图的文件的名字。

exercise_puzzle.jpgiOS填字游戏
开动脑筋,思考那些我们在这一章中使用的新术语对应的英文单词。

4.一些不能依靠模拟器测试的东西。(PERFORMANCE)

5.这是用来建立一个从执行代码到视图的输出连接。(IBOUTLET)

7.该术语用来描述一个iPhone应用程序中的每一个屏幕。(VIEW)

8.用于编写iPhone应用程序的框架。(COCOATOUCH)

10.在应用程序中用于组织图形的文件夹。(RESOURCES)

12.对iPhone应用程序使用的IDE名称。(INTERFACEBUILDER)

13.在Xcode中使用,以提供类的访问。(FRAMEWORKS)

纵向的

1.用来编写iPhone应用程序的语言。(OBJECTIVEC)

2.用来在台式机上测试应用程序。(SIMULATOR)

3.用于接收代码中的事件,并触发一些事情。(IBACTION)

6.这是一个编辑器的名字,用于Objective-C。(XCODE)

9.iPhone是这种类型的设备。(MOBILE)

11.用于创建视图的文件的名字。(NIB)

时间: 2024-11-02 10:17:01

《深入浅出iPhone/iPad开发(第2版)》——你已经创建了自己的第一个iPhone应用程序!的相关文章

《深入浅出iPhone/iPad开发(第2版)》——Xcode是你的iOS项目的枢纽

Xcode是你的iOS项目的枢纽 深入浅出iPhone/iPad开发(第2版) 当Xcode打开你新建的基于视图的项目时,你会看到所有构成这个项目的文件,但是我们改变了一点点.通过展开项目,并选择一个.xib文件(请在查看时多花点时间),GUI编辑器会在左边打开.要打开侧端的辅助视图,点击编辑器右上的铺助编辑器按钮. 我们将使用一些SDK中的其他工具(尤其是模拟器),但是它们都用于处理这里所包含的文件. 显示的文件和框架有悖于我们这个基于视图的应用程序的选择.让我们继续向前,我们将使用不同类型的

《深入浅出iPhone/iPad开发(第2版)》——Xcode是一个全功能的集成开发环境

Xcode是一个全功能的集成开发环境 深入浅出iPhone/iPad开发(第2版) Xcode远不只是一个文本编辑器.正如你所看到的,Xcode含有模板,帮助你开始一个应用程序的开发.根据你的应用程序,你可以使用所有的模板,或者只是使用一部分,但你总是能够以它们中的一个作为模板开始.一旦你选择了基础应用程序模板,你可以使用Xcode做更多的事. 维护你的项目资源 Xcode会为你的项目创建一个新的目录,并将各种文件放入这个子目录中.你没有必要坚持默认的布局,但是如果你决定要整理它们,完全可以用X

《深入浅出iPhone/iPad开发(第2版)》——在Xcode中建立你的界面

在Xcode中建立你的界面 深入浅出iPhone/iPad开发(第2版) 当你在Xcode中打开任何.xib文件时,GUI编辑器将会在主窗口中运行.随着你完成上一页的视图调整,Xcode将会准备好使用视图.现在,它在你的nib.你的视图和UI元素(在右边)库中显示一个项目的概览.你可以拖放任何基础的库元素到你的视图中,编辑它们并将之与代码联系起来,而编辑这些元素,需要使用铺助编辑器.所有的这些元素来自于Cocoa Touch框架,即用于iOS设备的一个自定义UI框架.

《深入浅出iPhone/iPad开发(第2版)》——使用GUI编辑器连接UI控制到代码

使用GUI编辑器连接UI控制到代码深入浅出iPhone/iPad开发(第2版)高亮显示的iDecideViewController.xib来自GUI编辑器,打开助理编辑器,你会在一旁看到iDecideViewController.h.现在让我们把按键连接到我们的新代码.

《深入浅出iPhone/iPad开发(第2版)》——替换按键的文本

替换按键的文本深入浅出iPhone/iPad开发(第2版)你知道,按键需要一个IBAction去响应按键按下,因此,我们在实现文件中编写按键应该怎么做.但是按键应该怎么做呢? 我们需要去替换按键中的文本来提供一个答案.因此,这意味着我们需要一些方式达到返回"out"到界面,并改变标签的文本.我们将使用一个IBOutlet来实现. IBActions和IBOutlets是对理解如何使用控件来工作的关键,我们将在下一章中对它们进行细致的讨论.目前,只要记住动作用于在界面中对事件做出反应,出

《深入浅出iPhone/iPad开发(第2版)》——发生了什么

发生了什么深入浅出iPhone/iPad开发(第2版)我们编写的所有Objective-C都被设置为当按键被按下时处理事情,但是视图还没有建立按键到代码的连接,我们需要使用GUI编辑器将我们写的buttonPressed方法连接到按键,然后当.xib文件通过框架被加载时,它将连接代码创建的按键对象. 除非UI组件被连接到代码,否则不会有任何事情发生我们需要连接按键"嘿,我刚刚按下按键"的事件到我们的buttonPressed动作方法.当用户按下按键时,将调用我们的方法.然后,当nib被

《深入浅出iPhone/iPad开发(第2版)》——你的iOS工具箱

你的iOS工具箱深入浅出iPhone/iPad开发(第2版)第1章已经被你征服,现在你已经添加了基本的iOS应用程序交互到你的工具箱中. 视图是在界面构建器中创建的. 一个视图是由nib(.xib)文件组成的,而GUI则在界面构建器中被编辑的.* 然后,你编写代码使视图运行-- 这类代码几乎总是使用Xcode用Objective-C语言编写的,而且其中包括IBActions和IBOutlets. 连接组件事件到代码. 回到界面构建器,连接你的动作和出口到视图中包含的组件. 模拟器运行你的应用程序

《深入浅出iPhone/iPad开发(第2版)》——iOS模拟器让你可以在Mac上测试你的应用程序

iOS模拟器让你可以在Mac上测试你的应用程序深入浅出iPhone/iPad开发(第2版)模拟器是一款伟大的测试工具,它可以让你快速并且免费测试应用程序.它不能兼容所有真正的设备,但是对于大多数设备而言,它表现得很好.当你第一次打开模拟器时,你会看到一个安装了iDecide(默认图标你可以在之后修改)的面板(就像一部真正的iPhone,它的初始屏幕会显示你的所有应用程序图标).Xcode会打开这个应用程序并运行你的代码. 使用模拟器与使用iPhone会有一些不同之处.首先,摇动和旋转你的Mac不

《深入浅出iPhone/iPad开发(第2版)》——iDecide实际上很简单

iDecide实际上很简单深入浅出iPhone/iPad开发(第2版)对于iDecide,并没有一个需要我们去处理的数据源--因为我们只是改变标签文本并且能在iDecideViewController.m的一行中指定它,所以没有什么要存储的.因此,iDecide是简化的视图-视图控制器模式.你可以认为它是MVC模式,但是没有那个M--在这里我们不需要一个模型. 这种模式是iOS开发的秘密如果你的大脑中还有空间可以记住这一章中的一件事情的话,那么应该用下面的内容来填补这一空间:模型-视图-控制器模