我不认为我在这里给出任何Apple秘密,所以我会问。 我的.pch文件如下所示:
#ifndef __IPHONE_4_0
#warning "This project uses features only available in iOS SDK 4.0 and later."
#endif
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <Availability.h>
#import <UIKit/UIKit.h>
#import "DejaViewAppDelegate.h"
#endif
因此,第2行会出现一条警告:“此项目使用的功能仅适用于iOS SDK 4.0及更高版本。”
当#import Availability.h在ifndef语句之后出现时,SDK警告会回显ifndef警告。 当#import Availability.h出现在idndef之前时,它不会发出警告。
有什么理由?
答案 0 :(得分:6)
在标准项目模板中,<Availability.h>
是第一个导入。这是有道理的,因为那是定义__IPHONE_4_0
的地方。
顶部的宏检查是否定义了IPHONE_4_0
,如果不是,则发出编译器警告。由于宏稍后定义(通过导入<Availability.h>
,您会看到编译器警告。