developer tip

대상 iPhone 시뮬레이터 매크로가 작동하지 않음

optionbox 2020. 12. 11. 08:04
반응형

대상 iPhone 시뮬레이터 매크로가 작동하지 않음


TARGET_IPHONE_SIMULATOR매크로를 사용하면 am 응용 프로그램에서 동일한 상수 값이 정의됩니다. 예를 들면 :

#ifdef TARGET_IPHONE_SIMULATOR
NSString * const Mode = @"Simulator";
#else
NSString * const Mode = @"Device";
#endif

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
   ...
   NSLog(@"Mode: %@", Mode);
   ...
}

항상 "모드 : 시뮬레이터"가 기록됩니다. 도움이된다면 현재 XCode 3.2.4를 실행하고 있습니다. 감사.


TARGET_OS_SIMULATOR장치에 정의되어 있지만 false로 정의되어 있습니다. 수정 사항은 다음과 같습니다.

#include <TargetConditionals.h> // required in Xcode 8+

#if TARGET_OS_SIMULATOR
NSString * const Mode = @"Simulator";
#else
NSString * const Mode = @"Device";
#endif

이것이 언제 변경되었는지 확실하지 않습니다. 과거에는 'ifdef'를 사용할 수 있었을 것이라고 확신합니다.


나를 위해 명시 적으로 TargetConditionals.h도움을

#include <TargetConditionals.h>

TARGET_IPHONE_SIMULATOR는 더 이상 사용되지 않으므로 TARGET_OS_SIMULATOR를 사용해보세요.


앱을 통해 다른 클래스에서 사용할 경우 매크로를 구현하려고합니다.

pch 파일에서,

#if TARGET_IPHONE_SIMULATOR
#define isSimulator() YES
#else
#define isSimulator() NO
#endif

모든 클래스에서 isSimulator ()를 호출하여 확인할 수 있습니다.


어떤 이유로 TARGET_IPHONE_SIMULATOR가 xcode v6.4에서 작동하지 않습니다. 아래 스 니펫은 완벽하게 작동합니다.

#if (!arch(i386) && !arch(x86_64))
  camera           = Camera()
#else
  camera           = MockCamera()
#endif

참고 URL : https://stackoverflow.com/questions/3427888/target-iphone-simulator-macro-not-working

반응형