जब आप इंटरफ़ेस बिल्डर में दृश्य में एक MKMapView
घटक जोड़ने, वहाँ चेक बॉक्स आप कॉन्फ़िगर यह क्या दर्शाता है की अनुमति देते हैं:आईओएस 8 में एमकेमैप व्यू के "उपयोगकर्ता स्थान दिखाता है" का उपयोग कैसे करें?
जब आप जाँच "उपयोगकर्ता स्थान", यह स्वतः पर उपयोगकर्ता के स्थान से पता चलता नक्शा।
हालांकि, आईओएस 8 के बाद से आप उपयोगकर्ता के स्थान को दिखाने से पहले स्थान अनुमति मांगना चाहते हैं। यदि आप नहीं करते हैं, तो आपको कंसोल में चेतावनी देने के बिना "नक्शाकिट स्थान अपडेट शुरू करने का प्रयास करना" मिलता है।
तो मैं plist करने के लिए एक NSLocationWhenInUseUsageDescription
कुंजी जोड़ दिया है, और viewDidLoad
लिए इस कोड को कहा:
if CLLocationManager.authorizationStatus() == .NotDetermined {
CLLocationManager().requestWhenInUseAuthorization()
}
यह हालांकि काम करने के लिए प्रतीत नहीं होता। मुझे अनुमति के लिए पूछने वाला एक पॉपअप मिलता है, लेकिन इससे पहले कि मैं कोई जवाब चुनूं, यह स्वयं ही छुपाता है, नक्शा इसके नीचे लोड होता है और मुझे कंसोल में चेतावनी मिलती है।
मुझे पता है कि मैं अनुमति प्राप्त करने के बाद कोड में showsUserLocation
संपत्ति सेट कर सकता हूं; लेकिन मेरा मुद्दा यह है कि आईबी में यह चेकबॉक्स है जो एक ही काम करना है, सिवाय इसके कि यह तुरंत ट्रैकिंग शुरू कर देता है। क्या इसका मतलब यह है कि हमें आईओएस 8 के बाद से इस चेकबॉक्स का उपयोग नहीं करना चाहिए? या क्या मैं इसे गलत तरीके से उपयोग कर रहा हूं?
-
अद्यतन: वास्तव में, अपने आप में पॉपअप खाल परवाह किए बिना अगर "उपयोगकर्ता स्थान से पता चलता है" या सेट नहीं है। मैंने इसे viewWillAppear
या viewDidAppear
में करने की कोशिश की है, लेकिन इससे मदद नहीं मिली। तो मुझे यकीन है कि जहां वास्तव में मैं जब एक MKMapView
का उपयोग कर requestwhenInUseAuthorization
फोन करना चाहिए नहीं कर रहा हूँ ...
आह, आप सही हैं, एआरसी मुझे स्मृति प्रबंधन के बारे में पूरी तरह से भूल जाता है और कभी-कभी इस तरह की चीजों की ओर जाता है। ऐसा लगता है कि अगर मैं प्रबंधक को बरकरार नहीं रखता तो यह पॉप अप भी नहीं दिखाता है। यदि मैं करता हूं, तो यह काम करता है, धन्यवाद। –
आपकी मदद करने में खुशी हुई! :) – TonyMkenu
अच्छा मुझे लगता है कि प्रतिनिधि का संदर्भ उदाहरण के आसपास रखने के लिए पर्याप्त नहीं है। एक बार फिर धन्यवाद! – Quincy