2012-09-24 16 views
43

आईओएस 6 में, purpose CLLocationManager की संपत्ति, स्थान सेवाओं (@property(copy, nonatomic) NSString *purpose) का उपयोग करने के कारण का वर्णन करने के लिए "उद्देश्य" संपत्ति के लिए प्रतिस्थापन को हटा दिया गया है।CLLocationManager

ऐप्पल द्वारा क्या प्रतिस्थापन, यदि कोई है, प्रस्तावित किया गया है?

+0

≥30 के स्कोर के साथ एक उत्तर है; क्या आपने इसे स्वीकार करने के रूप में चिह्नित किया है? – bdesham

उत्तर

62

iOS 6 में purpose संपत्ति के लिए प्रतिस्थापन के लिए एक नया Info.plist कुंजी NSLocationUsageDescription नामित (है उर्फ "गोपनीयता - स्थान उपयोग विवरण")।

कुंजी documented in the Information Property List Key Reference है लेकिन दुर्भाग्य से purpose संपत्ति के बहिष्करण नोट के साथ इसका उल्लेख नहीं किया गया है।

* पदावनत:

हालांकि, CLLocationManager.h इस टिप्पणी करता है। कुंजी NSLocationUsageDescription का उपयोग कर Info.plist में उद्देश्य स्ट्रिंग सेट करें।

अपने कोड में, आप दोनों कुंजी और purpose संपत्ति सेट कर सकते हैं (लेकिन आप जांच करने के लिए करता है, तो स्थान प्रबंधक पहला यह है कि चयनकर्ता का जवाब चाहते हो सकता है अगर/जब कि विधि वास्तव में भविष्य में निकाल दिया जाता है)।

यदि आईओएस 6 के तहत चल रहा है, तो स्थान प्रबंधक कुंजी का उपयोग करेगा।
आईओएस 6 से कम के तहत चलते समय, कुंजी को अनदेखा कर दिया जाएगा और purpose संपत्ति का उपयोग किया जाएगा।

+6

फिर आप इस स्ट्रिंग को स्थानीय रूप से कैसे स्थानांतरित कर सकते हैं? या फिर आपको इस उद्देश्य के लिए स्थानीयकृत infoplist.strings की आवश्यकता है? (कोई पन इरादा नहीं) –

+0

@ बॉबडेग्राफ स्थानीयकृत infoplist.strings यहां से जाने के तरीके की तरह लगता है: http://stackoverflow.com/a/14144989/159758 – DonnaLea

3

मुझे बस मेरे ऐप में एक ही समस्या थी।

मुझे पता चला कि अब आप CLLocationManager! की गतिविधि सेट कर सकते हैं आप विभिन्न क्लाइंटिविटी टाइप्स चुन सकते हैं, इसलिए आपको अपना उद्देश्य अब और लिखने की आवश्यकता नहीं है।

यहाँ एक नेविगेशन अनुप्रयोग

आधारित
[self.gps setActivityType:CLActivityTypeAutomotiveNavigation]; 

अन्य संभावित CLActivityTypes हैं के लिए उदाहरण के लिए है:

- CLActivityTypeFitness 
- CLActivityTypeOther 
- CLActivityTypeOtherNavigation 
+0

क्या यह उपयोगकर्ता को दिखाए जाने वाले बदलाव को बदलता है? और मैं टाइपऑथर का उपयोग करने के बजाय, अधिक विशिष्ट होना चाहता हूं (जैसे "उद्देश्य" से पहले यह संभव था)। प्रतिस्थापन की प्रतीक्षा कर रहा हूं, मैं बहिष्कृत विधि का उपयोग करना जारी रखूंगा। – Guillaume

+0

वैसे उपयोगकर्ता को प्रदर्शित संदेश एक प्रकार का डिफ़ॉल्ट संदेश है: "ऐपनाम" आपके वर्तमान स्थान का उपयोग करना चाहता है। "मुझे समझ में नहीं आता कि सेब ने इसे क्यों बदल दिया, मुझे यकीन है कि उपयोगकर्ता विवरण जानना चाहते हैं। .. –

+0

भूलें कि आधिकारिक तौर पर बहिष्कृत होने का मतलब जल्द ही छोड़ दिया जाना है, लेकिन जल्द ही परिभाषा भिन्न हो सकती है। – Guillaume

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