1

如果我在 xcode 中创建一个新项目,然后选择“基于视图的应用程序”,则会自动生成委托和视图控制器类模板。这是 DummyAppDelegate.h 的片段

@class dummyViewController;

@interface dummyAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    dummyViewController *viewController;
}

我的主要问题是:实例变量 viewController 在哪里实例化?我在生成的文件中看不到这方面的代码,那么 InterfaceBuilder 中的某些连接是否会自动实例化它?

第二个较小的问题是为什么在上面的代码中使用@class 而不是简单的

#include "dummyViewController.h"

非常感谢任何帮助,非常感谢!

4

1 回答 1

0

窗口、视图控制器以及应用程序委托都从MainWindow.xib. 一旦加载了 NIB 文件,您放置在 NIB 文件中的任何对象都会被实例化。通过在应用程序的 Info.plist 中指定 MainWindow.nib,您可以告诉 Cocoa(实际上是UIApplication实例)在应用程序启动时自动加载该文件。

@class ...声明是所谓的前向声明。它被认为是良好的编程习惯,因为它的使用可以缩短编译时间(需要导入的头文件越少,编译步骤就越快)。

于 2011-01-03T19:08:59.970 回答