时间:2010-05-04 12:29:51

标签: iphone objective-c cocoa-touch

我在一些旧版应用程序中注意到,在我添加自定义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;
}

加里

1 个答案:

答案 0 :(得分:1)

是的,您应该将现有的成员类型定义改进为尽可能具体。

在头文件中,您应始终转发声明您的实例对象。

这样可以避免实际导入类头,从而节省一点开销。

在标头文件中尽可能多地向前声明,然后在实施文件中声明#import

以下是一个例子:

标题文件:

@class CustomViewController;
@interface ApplicationAppDelegate: NSObject <UIApplicationDelegate> {
    UIWindow *window;
    CustomViewController *viewController;
}

实施文件:

#import "CustomViewController.h";

@implementation ApplicationAppDelegate

...

@end