您的位置:首页 > 其它

我们的第一个iPhone程序-续

2009-07-03 06:47 281 查看
去我的目录

上次我们知道了如何build

一个简单的iPhone

应用程序。我们不着急往下走。

今天我们花一些时间,从另外几个方面探讨一下上次HelloWorld

的程序。

这个HelloWorld

可谓麻雀虽小,五脏俱全。

首先,让我们再来看看MainWindow.xib

。好奇的读者可能上次就会有疑问,这个程序到底是如何运行起来的呢?

任何一个iPhone

程序运行时,都会首先装载MainWindow.xib



上一篇详细解释了存在于MainWindow.xib

之中的五个对象,在程序装载MainWindow.xib

资源的时候,除了File Owner

和First Responder

之外,其余的几个组件都会有相应的类对象被创建。比如,HelloWorld App Delegate

所对应的HelloWorldAppDelegate

类,就会有一个对象被创建。我们在代码中实现了HelloWorldAppDelegate

和HelloWorldViewController

类,这两个类的对象都会在初始化的时候被创建,分别对应着HelloWorld App Delegate

和Hello World View Controller

这两个组件。UIWindow

这个类是Apple

默认提供的,不需要我们实现,没有实现,并不代表没有。因此,UIWindow

这个类的对象也被创建,对应于组件Window



那么各个组件之间是什么关系,iPhone

程序是怎么知道它们之间关系的呢?首先,我们选中File Owner

,File Owner

的类型是UIApplication,

而每一个UIApplication

都有一个相应的delegate

,开发者可以通过实现delegate

中的一些方法,完成对UIApplication

的控制。按组合键cmd

(苹果键)+2,可以看到delegate

是和HelloWorld App Delegate

联系在一起的。它的意思是:这个application

的delegate

是通过HelloWorld App Delegate

来实现的。

我们在HelloWorldAppDelegate

中定义了两个变量,一个是UIWindow

,另一个是HelloWorldViewController

,所以很明显,在这个程序的delegate

被创建之时,Window

和Controller

也都被创建了。同样,选中HelloWorld App Delegate

,按组合键cmd

+2,可以看到viewController

和Hello World View Controller

联系在一起;而window

则是和Window

联系在一起,这样,我们就把HelloWorldAppDelegate

与 UIWindow、HelloWorldViewController

之间的关系确定了。

选中Hello World View Controller

,然后按组合键cmd

+1,在NIB Name

一栏中有HelloWorldViewController

,这说明在创建HelloWorldViewController

的时候,会装载名为HelloWorldViewController

的xib

资源。这样,另一个xib

资源也被装载了。

HelloWorldViewController.xib

被装载的过程和MainWindow.xib

很类似。除了File Owner

和First Responder

之外,其余的组件都会有相应的类对象被创建。这里,首先是UIView

被创建,然后摆放在View

上面的另外两个对象UIButton

和UILabel

也被创建。这些对象,也就是控件,被创建的时候,都需要设置一些属性,比如说位置,颜色等等,这些信息都可以通过Interface Builder

来设置,选中任意一个控件,然后组合键cmd+1

和cmd+3

,就可以设置一些基本属性了。

在HelloWorldViewController.xib

中选中File Owner

,然后cmd

+2,可以看到程序中变量(m_label

)是怎么和控件联系起来的,程序中的方法(showMessage

)是如何与控件的事件联系起来的。

通过上面的解释,应该能对iPhone

程序的工作原理有进一步的认识了。我们用下图来简单的表示一下这个过程:

-->MainWindow

|--> HelloWorld App Delegate

|--> Window

|--> Hello World View Controller

|--> UIView

|--> UIButton

|--> UILabel
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: