最近我下载了open source project zbar,项目本身与我的问题无关,我仍然无法弄清楚他的视图控制器是如何做到的:
//
// EmbedReaderViewController.h
// EmbedReader
//
// Created by spadix on 5/2/11.
//
#import <UIKit/UIKit.h>
@interface EmbedReaderViewController
: UIViewController
< ZBarReaderViewDelegate >
{
ZBarReaderView *readerView;
UITextView *resultText;
ZBarCameraSimulator *cameraSim;
}
@property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;
@property (nonatomic, retain) IBOutlet UITextView *resultText;
@end
就是这样,就是整个文件,他怎么能看到委托和ZBarReaderView和ZBarCameraSimulator,而不导入任何东西???。
我的实现正在运行,但我当然要导入文件,正如我在看这个例子时,它确实引起了我的注意,他没有导入任何东西......这怎么可能?
答案 0 :(得分:7)
项目中通常有一个pch
文件(预编译/前缀头);此文件自动包含在项目的每个其他代码文件中。如果pch
文件包含协议文件的#import
,那么项目中的每个文件都会知道它。
答案 1 :(得分:2)
他必须在前缀头文件中有前向声明或导入,前缀头文件是项目中以.pch
结尾的文件,该文件由项目中的所有源文件自动导入。