2013-05-29 3 views
7

Я работаю над проектом с использованием Xamarin.iOS, и у меня есть ситуация, когда поведение в симуляторе необъяснимо не совпадает с реальным устройством (настройка области центров просмотра по-разному) ,Обнаружение iOS-симулятора против устройства iOS

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

+0

Если вы знаете, что вы компилируете для цели Simulator или Device, почему бы не проверить макрос времени компиляции? Невозможно запустить один и тот же двоичный файл как на Simulator, так и на устройствах. См. [Программно определить, выполняется ли приложение на устройстве или симуляторе] (http://stackoverflow.com/questions/5775420/programmatically-detect-if-app-is-being-run-on-device-or-simulator) – Simon

+0

Ответ на компиляцию будет работать, если я могу заставить его работать на Xamarin/C#. Благодарю. –

ответ

11

Вы можете выполнить другой код во время выполнения, как это:

if (MonoTouch.ObjCRuntime.Runtime.Arch == Arch.DEVICE) { 
} else { 
} 

Но это всегда хорошо, чтобы исследовать (спросить здесь, форумы, сообщения об ошибках), почему поведение отличается между ними (просто чтобы убедиться, что не скрывает ошибку, которая может вас укусить позже).

Смежные вопросы