【发布时间】:2010-08-12 15:07:30
【问题描述】:
谁能给我一个关于 iPhone 应用程序结构的一对多段落的快速概述。我正在阅读一本书,但我无法真正理解 App Delegates、MainWindow.xib 与单个视图的 nib 文件、操作与插座等的目的。
我正在寻找一个高层次的描述,因为我能找到的只是这些东西的详细描述。
【问题讨论】:
标签: iphone cocoa-touch
谁能给我一个关于 iPhone 应用程序结构的一对多段落的快速概述。我正在阅读一本书,但我无法真正理解 App Delegates、MainWindow.xib 与单个视图的 nib 文件、操作与插座等的目的。
我正在寻找一个高层次的描述,因为我能找到的只是这些东西的详细描述。
【问题讨论】:
标签: iphone cocoa-touch
您可以在 Apple 的文档中找到有关诸如委托等 Objective-C 设计模式的更多信息。以下是您提到的内容的简要概述:
对象以各种方式与其他选项通信,其中之一是委托。应用委托是从应用接收特定消息的对象。
XIB 文件包含用户界面和连接的描述。 MainWindow.xib 包含主窗口的 UI 信息,但为了提高效率,您应该为其他视图控制器提供单独的 XIB 文件(当用户尝试实例化某种视图控制器时,您应该延迟加载 XIB,并缓存XIB 以防止重新加载它;有关详细信息,请参阅 UINib。
动作和出口是将代码连接到 XIB 中的 UI 元素的方式。动作是 UI 元素向对象发送的消息。例如,按下按钮可以将动作发送到您的视图控制器。出口将是对该按钮的引用。
有关 iOS 开发环境中的 Objective-C 的更多信息,请参阅文档:
【讨论】:
iPhone 应用程序的物理结构由一个目录组成,该目录充当主要可执行文件和使用的所有资源(图像、属性列表、接口文件等)的捆绑包。
运行时,可执行文件首先执行main() 函数。该函数要么以编程方式实例化应用程序委托,要么加载主接口文件(指定应用程序委托)。应用程序委托响应应用程序级事件,例如终止或进入和退出后台。
可以通过编程方式或通过使用 Interface Builder .xib 文件来构建界面。如果以编程方式,您的应用程序委托将构建初始的整体界面,然后将事情交给各个视图控制器来管理特定视图的显示。如果通过 Interface Builder 完成,您将定义编译成冻干对象的接口文件,这些对象在运行时反序列化到您的接口中。
总体而言,Cocoa 应用程序倾向于遵循模型-视图-控制器设计模式,您的应用程序的这三个区域在代码中是分开的。视图是通用的可重用显示元素,您的模型包含应用程序数据(通常使用 Core Data 或 SQLite 持久化),您的控制器提供将所有内容粘合在一起的特定于应用程序的逻辑。
【讨论】: