2010-01-28 8 views
23

के लिए दूरी, मुद्रा, तापमान इकाइयों आदि ढूँढना मेरे ऐप के स्थानीयकरण के दौरान मैंने बहुत सारे दस्तावेज के माध्यम से जाना, कहीं मुझे यकीन है कि मैंने पढ़ा है कि इकाइयों का एक सेट प्राप्त करने का एक तरीका है लोकेल से जुड़ा हुआ है।किसी देश (आईफोन)

मुझे विश्वास है कि यह "सांस्कृतिक पर आधारित इकाइयों" जैसे कुछ कहता है।

मैं कुछ देशों और सेल्सियस और किलोमीटर के लिए फारेनहाइट और माइल्स में तापमान और दूरी प्रदर्शित करना चाहता हूं।

क्या आईफोन एसडीके में इन इकाइयों की सूची तक पहुंचने का कोई तरीका है।

धन्यवाद।

उत्तर

29

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

ओह। आप शाही बनाम मीट्रिक की जांच कर सकते हैं। NSLocaleMeasurementSystem और NSLocaleUsesMetricSystem कुंजी हैं।

+0

हाय केनी धन्यवाद! मान लीजिए कि मैं इसे कुछ और विचार दूंगा जैसे कि इसे दो छोटे लेबलों के लिए ऐसी सूची लोड करने के लिए उचित ठहराया जा सकता है:/ – RickiG

+0

@ रिकीजी। माफ़ कीजिये। अद्यतन की जाँच करें। – kennytm

+0

हाय केनी! इस पर वापस आने के लिए धन्यवाद :) बस सही है, मैंने अभी तक बनाम देशों की सूची संकलित करना शुरू नहीं किया था।माप प्रणाली तो यह एक सही समय पर आया था। एक बार फिर धन्यवाद। – RickiG

9

यह उल्लेखनीय है कि ऐप्पल एक सीएलएलोकेशनडिस्टेंस को किसी दिए गए उपयोगकर्ता के लोकेल और भाषा के लिए उचित स्ट्रिंग के रूप में स्वचालित रूप से प्रस्तुत करने के लिए एक अच्छी लाइब्रेरी (एमकेडिस्टेंसफॉर्मेटर, आईओएस 7 में पेश किया गया) प्रदान करता है।

यह थोड़ा अस्पष्ट राउंडिंग (उदाहरण के लिए 300 फीट-> 350 फीट-> 400 फीट) करता है, लेकिन इकाइयों के बीच अच्छी तरह से परिवर्तित होता है (जैसे पैर -> मील, ऐसा करने के लिए उपयुक्त होने पर)। जब तक आप वास्तव में सटीक मूल्यों की मांग नहीं करते हैं, यह कक्षा कोड की दो पंक्तियों में दूरी के लिए किसी न किसी अनुमान को वापस करने के लिए एकदम सही है।

MKDistanceFormatter *distanceFormatter = [[MKDistanceFormatter alloc] init]; 
[distanceFormatter setUnitStyle:MKDistanceFormatterUnitStyleAbbreviated]; // Optional 
NSString *formattedDistance = [distanceFormatter stringFromDistance:100]; 
NSLog(@"%@",formattedDistance); // Prints "350 ft" 

https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKDistanceFormatter_class/Reference/Reference.html

8

मैं सिर्फ नोट करने के लिए, कि, की रिहाई iOS8 साथ के रूप में वहाँ इकाइयों आप का उल्लेख किया कम से कम कुछ के लिए नए NSFormatters हो जाएगा चाहता था।

होगा NSLengthFormatter, NSMassFormatter और NSEnergyFormatter जो उपयोग करने के लिए बहुत आसान कर रहे हैं - इस iOS8 NSFormatter tutorial देखते हैं।

let lengthFormatter = NSLengthFormatter() 
println(@"Kilometer: %@", lengthFormatter.stringFromValue(1000, unit: .Kilometer))  //Kilometer: 1,000 km 
1

स्विफ्ट::

1.)

import MapKit 

2.) बनाने फ़ॉर्मेटर महंगा है एक आलसी संपत्ति के रूप में, तो आप बेहतर सेट फ़ॉर्मेटर के बाद से यहां तेज के साथ NSLengthFormatter का उपयोग कर एक उदाहरण है । ऐसा करके, आप फॉर्मेटर को केवल तभी प्रारंभ कर सकते हैं जब आवश्यक हो और फ़ॉर्मेटर को नया बनाने के बजाय पुन: उपयोग करें।

lazy var distanceFormatter: MKDistanceFormatter = { 
    var tempDistanceFormatter = MKDistanceFormatter() 
    tempDistanceFormatter.unitStyle = .Abbreviated // .abbreviated in Swift 3 

    return tempDistanceFormatter 
}() 

3.)

let distanceString = self.distanceFormatter.stringFromDistance(yourDistance)