2012-10-14 2 views
0

나는 여기에 어떤 애플의 비밀도 알려주지 않는다고 생각합니다. 그래서 물어볼 것입니다. 내 .PCH 파일은 다음과 같습니다. "이 프로젝트는 아이폰 OS SDK 4.0에서 사용할 수 나중에 기능을 사용"iPHONE IOS SDK 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에 나타납니다.

Ifndef 문 뒤에 #import Availability.h가 오면 SDK 경고가 ifndef 경고를 표시합니다. #import Availability.h idndef 이전에는 경고를 표시하지 않습니다.

이유가 무엇입니까?

답변

6

표준 프로젝트 템플릿에서 <Availability.h>이 첫 번째 가져 오기입니다. 그게 의미가 있기 때문에 그 곳은 __IPHONE_4_0입니다.

상단의 매크로는 IPHONE_4_0이 정의되어 있는지 확인하고 그렇지 않은 경우 컴파일러 경고를 발행합니다. 매크로가 나중에 정의됨에 따라 (<Availability.h>을 가져 오면 컴파일러 경고가 표시됩니다.)