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