2011-09-19 3 views
16

내 iPhone iOS 프로젝트에 대상이 두 개 있습니다 (ProductionPreview).iOS : 현재 대상에 따른 조건부 코드

대상에있는 경우에만 코드 줄을 실행하고 싶습니다. Preview. 이것은 일종의 #ifdef ... 일 것입니다. 나는 내가 원하는 거의 것을하는 a solution을 발견했다. 그러나 구성을 사용하고 타깃을 사용하지 않는다.

예 : 당신의 도움이

답변

19

당신은 빌드 설정의 전 처리기 매크로 섹션에서 ifdef를 처리기를 추가 할 수 있습니다에 대한

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    #ifdef MY_PREVIEW_TARGET 
    [SomeLibraryWhichIsInPreviewTarget someMethod]; 
    #endif 

    // Code that applies for both targets ... 
} 

감사합니다.

+0

왜 프리 프로세서 매크로 여야합니까? "USER"에 유용하기 때문에 "사용자 정의"여야합니다. 그렇지 않니? – Satyam

36

샘스 솔루션이 정상적으로 작동했습니다.

  1. 열기 미리보기의 대상의 빌드 설정
  2. Preprocessor MacrosMY_PREVIEW_TARGET=YES에 설정 한 후 나는 목표를 확인하기 위해 위의 내 코드를 사용할 수 있습니다.
+10

단지'MY_PREVIEW_TARGET' 항목을'Preprocessor Macros'에 추가하십시오. 그런 다음 코드에서'#ifdef MY_PREVIEW_TARGET'을 사용하십시오. MY_PREVIEW_TARGET = YES와 같이 실제로 매크로를 'YES'로 설정할 필요가 없습니다. 값을 검사하지 않으므로 값을 설정할 필요가 없습니다. 단순히 변수가 있는지 확인하기 만하면됩니다. – SwiftArchitect