如果我在xcode中创建一个新项目,然后选择“基于视图的应用程序”,则会自动生成委托和视图控制器类模板。这是DummyAppDelegate.h的一个片段
@class dummyViewController;
@interface dummyAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
dummyViewController *viewController;
}
我的主要问题是:实例变量viewController在哪里实例化?我在生成的文件中看不到这个代码,所以InterfaceBuilder中的某些连接会自动实例化吗?
第二个,较小的问题是为什么在上面的代码中使用@class而不是简单的
#include "dummyViewController.h"
非常感谢任何帮助,非常感谢!
答案 0 :(得分:0)
窗口,视图控制器以及应用程序委托都是从MainWindow.xib
加载的。加载NIB文件后,您在NIB文件中放置的任何对象都会被实例化。通过在应用程序的Info.plist中指定MainWindow.nib,您可以告诉Cocoa(实际上,UIApplication
实例)在应用启动时自动加载该文件。
@class ...
语句是所谓的前向声明。它被认为是很好的编程实践,因为它的使用可以缩短编译时间(需要导入的头文件越少,编译步骤就越快)。