0

我不认为我会在这里泄露任何苹果的秘密,所以我会问的。我的 .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 之前,它不会引发警告。

有什么理由吗?

4

1 回答 1

6

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

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

于 2012-10-14T00:40:58.383 回答