4

我一直在观看一段视频,该视频指出UIAlertView只有在导入 UIKit.h 时才有效。但是,如果我在头文件中注释掉导入语句:

//#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end

当我将它添加到实现文件时,警报仍然有效:

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}

请解释为什么这有效?UIKit 的真正作用是什么?

4

2 回答 2

8

这是因为它可能已经在您的Prefix.pch文件中声明,默认情况下看起来像这样:

#ifdef __OBJC__
    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
#endif
于 2012-05-06T22:22:26.990 回答
3

UIKit.h只是定义类等的文件。

没有它,编译器将不知道是什么UIAlertView

但是,在您的情况下,它可能仍然有效,因为#import <UIKit/UIKit.h>通常包含在项目的前缀文件中,默认情况下包含在您的源文件中。

于 2012-05-06T22:23:23.210 回答