2012-10-14 35 views
0

我不認爲我在這裏給任何蘋果機密,所以我會問。 我.PCH文件是這樣的:「這個項目只使用iOS版SDK 4.0及更高版本的功能」PCH文件中的iPHONE IOS SDK奇怪的警告

#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號線。

當#import Availability.h在ifndef語句後出現時,SDK警告正在迴應ifndef警告。 它不會在idndef之前的#import Availability.h時發出警告。

任何原因爲什麼?

回答

6

在標準項目模板中,<Availability.h>是第一個導入。這是有道理的,因爲這是定義__IPHONE_4_0的地方。

頂部的宏檢查是否定義了IPHONE_4_0,如果不是,則發出編譯器警告。由於稍後定義了宏(通過導入<Availability.h>,您會看到編譯器警告。)