我在一些旧版应用程序中注意到,在我添加自定义View Controller的情况下,我没有更改应用程序委托中的View Controller类。例如,下面我创建了一个CustomViewController类,但已将viewController声明为UIViewController。
@interface ApplicationAppDelegate: NSObject <UIApplicationDelegate> {
UIWindow *window;
UIViewController *viewController;
}
我的问题是,两者都有效,但为了正确,我应该按如下方式写这个:
@class CustomViewController;
@interface ApplicationAppDelegate: NSObject <UIApplicationDelegate> {
UIWindow *window;
CustomViewController *viewController;
}
加里
答案 0 :(得分:1)
是的,您应该将现有的成员类型定义改进为尽可能具体。
在头文件中,您应始终转发声明您的实例对象。
这样可以避免实际导入类头,从而节省一点开销。
在标头文件中尽可能多地向前声明,然后在实施文件中声明#import
。
以下是一个例子:
标题文件:
@class CustomViewController;
@interface ApplicationAppDelegate: NSObject <UIApplicationDelegate> {
UIWindow *window;
CustomViewController *viewController;
}
实施文件:
#import "CustomViewController.h";
@implementation ApplicationAppDelegate
...
@end