2010-02-22 6 views
6

मैं वर्तमान में मानचित्र-आधारित आईफ़ोन एप्लिकेशन पर काम कर रहा हूं और उपयोगकर्ता को कुछ जानकारी प्रदर्शित करना चाहता हूं। मेरे आवेदन के लिए, यह समझ में आता है कि कुछ प्रकार की सेटिंग है जहां उपयोगकर्ता माइल्स या किलोमीटर चुन सकता है। क्या इस तरह के मूल्य स्विचिंग के लिए तंत्र में एक निर्मित (शायद स्ट्रिंग स्थानीयकरण के समान) है ताकि जब भी मैं उपयोगकर्ता को कुछ प्रदर्शित करना चाहता हूं तो मैं एक आईएफ-ब्लॉक से बच सकता हूं?क्या आईफोन के लिए माइल्स/केएम इंटरचेंजबिलिटी के लिए एक अंतर्निहित तंत्र है?

उत्तर

12

NSLocale पर एक नज़र डालें। आपको [NSLocale CurrentLocale] का उपयोग कर वर्तमान लोकेल प्राप्त करने में सक्षम होना चाहिए। फिर [theLocale objectForKey: NSLocaleMeasurementSystem] को कॉल करें और परिणामों को देखें जो आपको बताएंगे कि क्या उपयोगकर्ता लोकेल मेट्रिक सिस्टम का उपयोग करता है। NSLocale के दस्तावेज़ों में एक स्थिरांक अनुभाग होता है जो लोकल को पारित किए जा सकने वाले सभी मानों को सूचीबद्ध करता है।

इसका उपयोग करके आप अपना स्वयं का कार्य करेंगे जो आपके कार्यक्रम में लोकेल विशिष्ट तरीके से अपनी दूरी वापस करने के लिए उपयोग किया जा सकता है।

+3

यदि आप एक साधारण बूलियन मूल्य चाहते हैं, तो आप NSLocaleUsesMetricSystem कुंजी भी देख सकते हैं, जो किलोमीटर या मील का उपयोग करने के लिए एनएसएनंबर-लिपटे बूलियन मान देता है। –

+0

मेरे आवेदन में, मैं उपयोगकर्ता को मील या किलोमीटर में प्रदर्शित चीजों को रखने का विकल्प देना चाहता हूं। इस धागे पर फीडबैक के आधार पर, मुझे लगता है कि यह स्पष्ट है कि एक इकाई के लिए एक इकाई को इंटरचेंज करने का एक अंतर्निर्मित तंत्र नहीं है, लेकिन उपयोगकर्ता के सेट बुलियन की जांच करने के लिए केवल एक विधि नहीं है, किलोमीटर में रूपांतरण करता है। प्रतिक्रियाओं के लिए धन्यवाद। मुझे यकीन है कि वे किसी बिंदु पर मेरे लिए काम में आ जाएंगे। – TahoeWolverine

+2

यह विधि अभी भी इकाइयों के लिए उपयोगकर्ता सिस्टम विकल्प के साथ आपकी वरीयता को पॉप्युलेट करने के लिए उपयोगी होगी। कुछ विचार करने के लिए। –

-1

मेरे त्वरित परीक्षण NSLocaleUsesMetricSystem के आधार पर यह पता लगाने के लिए काम नहीं कर सकता कि उपयोगकर्ता का क्षेत्र किलोमीटर या मील का उपयोग करता है या नहीं।

ब्रिटेन में, दूरी मील प्रति घंटा में लेकिन NSLocaleUsesMetricSystem रिटर्न 1.

अमेरिका में, NSLocaleUsesMetricSystem रिटर्न 0 (दूरी मीलों में है और मील प्रति घंटा की गति), जो सही है गति मीलों में हैं और ।

भारत में, NSLocaleUsesMetricSystem 1 लौटाता है जो सही है (दूरी किलोमीटर में है और केएफ में भाषण)।

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