PCH文件中的iPHONE IOS SDK奇怪警告

时间:2012-10-14 00:32:52

标签: objective-c ios4

我不认为我在这里给出任何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之前时,它不会发出警告。

有什么理由?

1 个答案:

答案 0 :(得分:6)

在标准项目模板中,<Availability.h>是第一个导入。这是有道理的,因为那是定义__IPHONE_4_0的地方。

顶部的宏检查是否定义了IPHONE_4_0,如果不是,则发出编译器警告。由于宏稍后定义(通过导入<Availability.h>,您会看到编译器警告。