Подтвердить что ты не робот

Xcode, iPhone: как определить цель симулятора во время компиляции?

Интересно, добавляет ли при создании iPhone приложение для Simulator специальные DEFINE, которые позволяют мне условно компилировать для этого случая?

Если нет, мне придется добавить свои собственные цели для этого случая, но я бы предпочел бы автоматический способ обнаружения.

В качестве альтернативы, есть ли динамический способ узнать, когда мой код работает на симуляторе, я имею в виду что-то, что задокументировано? Я уже давно искал документы, но еще не успел.

4b9b3361

Ответ 1

Для проверки времени компиляции вам нужен TARGET_IPHONE_SIMULATOR, определенный в TargetConditionals.h

#if TARGET_IPHONE_SIMULATOR
// Simulator code
#endif

Для проверки времени выполнения вы можете использовать, например, метод -model в UIDevice. Для симулятора iPhone он возвращает строку iPhone Simulator (не уверен в том, что касается симулятора iPad)

Ответ 2

@Update:
 В iOS 9.0 SDK TARGET_IPHONE_SIMULATOR - DEPRECATED. используйте TARGET_OS_SIMULATOR вместо TARGET_IPHONE_SIMULATOR

#if TARGET_OS_SIMULATOR
  // Simulator code
#endif