2013-05-29 14 views
7

मैं Xamarin.iOS का उपयोग कर एक प्रोजेक्ट पर काम कर रहा हूं और मेरे पास ऐसी स्थिति है जहां सिम्युलेटर में एक व्यवहार वास्तविक डिवाइस पर समान नहीं है (नक्शा दृश्य केंद्रों का क्षेत्र अलग-अलग स्थापित करता है) ।आईओएस सिम्युलेटर बनाम आईओएस डिवाइस

मैं सिम्युलेटर या वास्तविक डिवाइस पर चल रहा है या नहीं, इस पर आधारित रनटाइम पर एक चर के लिए एक मान सेट करने में सक्षम होना चाहता हूं। मैं इसका कैसे पता लगा सकता हूं?

+0

यदि आप जानते हैं कि आप सिम्युलेटर या डिवाइस लक्ष्य के लिए संकलित कर रहे हैं, तो संकलन समय मैक्रो की जांच क्यों न करें? सिम्युलेटर और उपकरणों दोनों पर एक ही बाइनरी चलाने का कोई संभावित मौका नहीं है। देखें [प्रोग्रामेटिक रूप से पता लगाएं कि डिवाइस या सिम्युलेटर पर ऐप चलाया जा रहा है] (http://stackoverflow.com/questions/5775420/programmatically-detect-if-app-is-being-run-on-device-or-simulator) – Simon

+0

संकलन समय का जवाब काम करेगा अगर मैं इसे ज़ैमरिन/सी # के लिए काम कर सकता हूं। धन्यवाद। –

उत्तर

11

आप इस तरह रनटाइम पर अलग कोड निष्पादित कर सकते हैं:

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

लेकिन यह हमेशा की जांच के लिए (यहाँ पूछना, मंचों, बग रिपोर्ट) क्यों व्यवहार दो (के बीच अलग अच्छा है बस इसे सुनिश्चित करने के लिए एक बग छुपा नहीं है जो बाद में आपको काट सकता है)।

संबंधित मुद्दे