2013-05-29 193 views
7

我正在使用Xamarin.iOS的項目工作,並且我有一種情況,模擬器中的行爲莫名其妙地與實際設備上的行爲不同(設置mapview中心的區域不同) 。檢測iOS模擬器與iOS設備

我希望能夠在運行時根據應用程序是在模擬器上還是在真實設備上運行來設置變量的值。我如何檢測這個?

+0

如果您知道您正在編譯模擬器或設備目標,爲什麼不檢查編譯時宏?在模擬器和設備上不可能運行相同的二進制文件。請參閱[以編程方式檢測應用是否在設備或模擬器上運行](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 { 
} 

但它總是好的調查(詢問在這裏,論壇,錯誤報告)爲什麼行爲兩個(之間的區別只是爲了確保它不會隱藏一個可能會在以後出現的bug)。