2010-10-15 14 views
45

मुझे वर्तमान देश को आईफोन सेटिंग्स में प्राप्त करना होगा। क्या कोई मुझे बता सकता है कि आईफोन एप्लिकेशन में वर्तमान देश कैसे प्राप्त करें।आईफोन डिवाइस से वर्तमान देश खोजें

मैं आरएसएस फ़ीड जिसमें मैं वर्तमान देश में उत्तीर्ण होना पार्स करने के लिए वर्तमान देश का उपयोग करने के लिए है।

कृपया देश को ढूंढने में मेरी सहायता करें।

अग्रिम धन्यवाद।

+3

क्या यह आईफोन या उस देश की स्थानीयकरण सेटिंग से देश है जहां आईफोन वर्तमान में भौतिक रूप से स्थित है? – JeremyP

उत्तर

124

उपयोगकर्ता की चुनी गई भाषा के देश ढूंढने के लिए:

NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale. 
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode]; 
// get country code, e.g. ES (Spain), FR (France), etc. 

स्विफ्ट में:

let currentLocale = NSLocale.currentLocale() 
let countryCode = currentLocale.objectForKey(NSLocaleCountryCode) as? String 

आप वर्तमान समय क्षेत्र की देश कोड को खोजने के लिए चाहते हैं, @chings228's answer देखते हैं।

यदि आप डिवाइस के भौतिक स्थान का देश कोड ढूंढना चाहते हैं, तो आपको रिवर्स जियोकोडिंग के साथ कोरलोकेशन की आवश्यकता होगी। विस्तार के लिए इस सवाल का देखें: How can I get current location from user in iOS

+0

+1 अच्छा मैं कुछ नया सीखता हूं कृपया बताएं कि मुझे इस पर कुछ और जानकारी मिल सकती है ... – Saawan

+1

@ranjeet: आप http://developer.apple.com/library/ios/#documentation/ में NSLocale के लिए संदर्भ पा सकते हैं कोको/संदर्भ/नींव/वर्ग/NSLocale_Class/संदर्भ/Reference.html। – kennytm

+0

बहुत बहुत धन्यवाद। मुझे जवाब मिला। – AppAspect

3
NSTimeZone *gmt = [NSTimeZone localTimeZone]; 

NSLog(@"timezone gmt %@",gmt.abbreviation); 
16
NSLocale *locale = [NSLocale currentLocale]; 
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode]; 
NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode]; 
+0

कोड स्निपेट ठीक काम कर रहा था लेकिन अचानक अंतिम पंक्ति पर Exc_Bad_Access त्रुटि देना शुरू कर दिया .. !! = (NSZombie इसे और ऐप क्रैश का पता लगाने में असमर्थ है। – tGilani

9
NSLocale *countryLocale = [NSLocale currentLocale]; 
NSString *countryCode = [countryLocale objectForKey:NSLocaleCountryCode]; 
NSString *country = [countryLocale displayNameForKey:NSLocaleCountryCode value:countryCode]; 
NSLog(@"Country Code:%@ Name:%@", countryCode, country); 
//Country Code:IN Name:India 

Source Link

+0

यह एनएसएलओजी (@ "देश कोड:% @ नाम:% @", देश कोड, देश) होना चाहिए; – AlexanderZ

4

आप परीक्षण और अपने सिस्टम से एक अलग भाषा का उपयोग करना चाहते हैं तो ऐसा इसलिए आपके उपकरण या सिम्युलेटर पर भाषा और क्षेत्र बदलने की अपनी योजना के Application Language और Application Region विकल्पों को बदलने के बजाय सबसे आसान है। >Scheme - ->Edit Scheme... ->Run -

Product पर जाएं>Options और Application Language और Application Region आप परीक्षण करना चाहते का चयन करें।

Edit Application Language and Application Region within Scheme Run Options

आईओएस प्रलेखन से: Testing Your Internationalized App

+0

यदि आपको लगता है कि यह एक बुरा जवाब है, तो कृपया एक टिप्पणी छोड़ दें क्यों। मैं इस रणनीति का उपयोग स्वयं कर रहा हूं, और जहां तक ​​मुझे पता है, यह अच्छी तरह से काम करता है, लेकिन अगर इसमें परेशानी है, तो मुझे उनके बारे में जानना अच्छा लगेगा! –

3

स्विफ्ट 3.0 समाधान

if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String { 
      print(countryCode) 
     } 
+4

क्यों नहीं 'Locale.current.regionCode'? – redent84

4

सिम कार्ड वाले डिवाइसों के लिए आप इस का उपयोग कर सकते हैं:

CTTelephonyNetworkInfo * network_Info = [CTTelephonyNetworkInfo new]; 
    CTCarrier * carrier = network_Info.subscriberCellularProvider; 
    NSString * countryCode = [carrier.isoCountryCode uppercaseString]; 
1

स्विफ्ट 3.0 नवीनतम कामकाजी कोड

if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String { 
    print(countryCode) 
} 
संबंधित मुद्दे