MKMapView नाम की क्लास को तत्काल नहीं कर सका


165

मैं यहाँ वास्तव में कुछ बेवकूफ बना रहा हूँ जैसा कि मैंने पहले किया है और यह काम किया है और अब ...

एक नया iPad प्रोजेक्ट बनाया, विवरण में मैंने एक MKMapView जोड़ा, प्रोजेक्ट में MapKit.framework जोड़ा, हेडर में संपत्ति / आदि को जोड़ा। प्रोजेक्ट को चलाने के लिए जाएं और साथ एक SIGABRT प्राप्त करें

**** अनकैप्ड अपवाद 'NSInvalidUnarchiveOperationException' अपवाद के कारण ऐप समाप्त करना, कारण: 'MKMapView' नामक क्लास को तत्काल नहीं कर सका। **

मुझे http://mithin.in/2009/06/22/use-iphone-sdk-mapkit-framework-a-tutorial/ मिला , लेकिन जैसा मैंने कहा, मैंने पहले ही फ्रेमवर्क जोड़ लिया है। मैं क्या खो रहा हूँ?

जवाबों:


379

मैं इसमें भी भाग गया, लेकिन मैं आपके लिंक में चरण 2 के निर्देशों का पालन करके इसे प्राप्त करने में सक्षम था (धन्यवाद, वैसे):

  1. MapKit ढांचे को प्रोजेक्ट में जोड़ें। (नियंत्रण + फ्रेमवर्क फ़ोल्डर पर क्लिक करें -> जोड़ें -> मौजूदा फ्रेमवर्क)

मैंने बस MapKit.framework के लिए खोज की, इसे प्रोजेक्ट में जोड़ा, और त्रुटि दूर हो गई।

मैंने अभी तक कोई मैप कोड नहीं जोड़ा है (हालाँकि मेरे पास IB में एक MapViewDelegate जुड़ा हुआ है), लेकिन यह अभी तक ठीक काम कर रहा है!


यह मदद की खुशी है! मैंने आखिरकार इसे निम्न कार्य करके प्राप्त कर लिया: - स्वच्छ परियोजना - रीसेट डिवाइस - रिबूट मशीन निश्चित नहीं है जो आवश्यक थी, लेकिन अब यह काम करती है :)
tg2

1
MapKit ढांचे को जोड़ने से मेरे लिए भी काम किया। मेरे कोड ने नक्शा तैयार किया और सब कुछ ठीक काम किया।
फाइनेंशियलहैप

4
अगर कोई भी इस समस्या को xcode 4.2 के साथ चलाता है, तो मुझे यह त्रुटि मिल रही थी कि फ्रेमवर्क फ़ोल्डर में फ्रेमवर्क दिखाई दे रहा था जब मैंने इसे जोड़ा था। मैंने लक्ष्य पर क्लिक किया, फिर बिल्ड चरणों पर, और देखा कि यह लाइब्रेरी अनुभाग के साथ लिंक बाइनरी में नहीं था। इसे फ्रेमवर्क फोल्डर से उस खंड तक खींचने से समस्या का ध्यान रखा गया। संकेत के लिए धन्यवाद,
टिम स्टीफेंसन

1
यह दुख की बात है, कि यह आपको तब नहीं चेतावनी देता है जब आप खींचते हैं (Iterface बिल्डर से) यह देखें कि आपके प्रोजेक्ट में लिंक नहीं है।
पॉल ब्रूसकिनस्की

30

प्रोजेक्ट सेटिंग्स लाने के लिए अपने प्रोजेक्ट पर क्लिक करें। लक्ष्य के तहत, अपनी परियोजना पर क्लिक करें, ऊपरी टूलबार "बिल्ड चरण" से चयन करें। "लिंक बाइनरी विद लाइब्रेरीज़" टैब के तहत, आप अपनी परियोजना में शामिल चौखटे की सूची देखेंगे। "+" बटन पर क्लिक करें और अपनी सूची में MapKit लाइब्रेरी को अपनी सूची में जोड़ें।


27

Xcode 6.1 के लिए:

  • अपनी परियोजना का चयन करें
  • सामान्य टैब में, लिंक्ड फ़्रेमवर्क और लाइब्रेरीज़ देखें (पिछले एक) को देखें
  • प्रेस + बटन
  • खोज MapKit.framework
  • अंत में जोड़ें

17

आसान तरीका!

Xcode संस्करण 7.2 से ऊपर काम करता है

जहाँ तक मैं क्षमताओं से MAPS के चयन का संबंध रखता हूँ, अपने आप आपकी रूपरेखा को आपकी परियोजना से जोड़ देगा, जो आपको करना है वह है - क्षमताओं में मैप्स बटन की जाँच करें -> मैप्स

संलग्न स्क्रीनशॉट का उपयोग करता है। चीयर्स !!

यहां छवि विवरण दर्ज करें


यह Xcode वर्जन के लिए भी काम करता है। 8. "मैप्स" को "क्षमताओं" के तहत बदलने के बाद, यह दर्शाता है कि MapKit.framework लिंक हो जाएगा। आप "बिल्ड चरणों" पर जाकर और "लिंक बाइनरी विद लाइब्रेरीज़" खंड का विस्तार करके भी इसकी पुष्टि कर सकते हैं। आपको वहां MapKit.framework भी देखना चाहिए।
रयान एच।

9

XCode 4.2 के लिए:

Click on your project name ->targets ->building Phase ->link binary with library 
  -> click on + sign ->select mapKit.framework ->click add

3

मैंने देखा कि मुझे यह संदेश मिल रहा था (इस पोस्ट में उल्लिखित मूल के शीर्ष पर) जब मैं सिम्युलेटर पर निर्माण और चल रहा था:

ld: चेतावनी: फ़ाइल /User/peter/programming/iPhone/iNspector/MapKit.framework/MapKit को अनदेखा करते हुए, फ़ाइल असमर्थित फ़ाइल स्वरूप के लिए बनाया गया था जो कि आर्किटेक्चर लिंक नहीं किया जा रहा है (i386)

तब मैंने सिर्फ अपने iPhone को कनेक्ट किया, डिवाइस पर बनाया और चलाया, और मैप ने काम किया।

तो ऐसा लगता है कि MapKit ढांचे को 386 वास्तुकला पर संकलित नहीं किया जा सकता है, इसे डिवाइस की आवश्यकता है।


3

@ Futureshocked के इनपुट के संबंध में, मुझे भी पता चला

Id: चेतावनी: फ़ाइल /blah.../MapKit को अनदेखा करते हुए, फ़ाइल असमर्थित फ़ाइल प्रारूप के लिए बनाई गई थी जो कि आर्किटेक्चर लिंक नहीं किया जा रहा है (i386)

मुद्दा।

** यह सुनिश्चित करने के लिए जांचें कि आपने प्रतिलिपि नहीं की है MapKit जब आपने इसे अपनी परियोजना में जोड़ा था, तो आपने अपने स्थानीय प्रोजेक्ट निर्देशिका में रूपरेखा की । मैंने गलती से ऐसा किया और XCode मुझे उपरोक्त त्रुटि दे रहा था। इसलिए मैंने इसे अपने प्रोजेक्ट डायरेक्टरी (फाइंडर में) से हटा दिया, फिर से जोड़ दिया, और सब कुछ फिर से सामान्य हो गया।

यदि आपके पास अपनी परियोजना में फ्रेमवर्क नहीं है, तो आगे बढ़ें और फिर से लिंक करें जैसा कि ऊपर दिए गए उत्तर में दिया गया है

MapKit के साथ आरंभ करने पर एक अच्छा ट्यूटोरियल मिला:
http://www.youtube.com/watch?v=X-3jM24EIGM&feature=related


3

अपने 5.1 फ़ोन (XC 4.5 के साथ) पर तैनात करने का प्रयास करने पर भी मुझे यह त्रुटि प्राप्त हुई, यहाँ तक कि मेरे तैनाती लक्ष्य को 5.1 में बदलने के बाद भी। ऐसा लगता है कि मेरे फ़ोन पर Google मैप्स होने के बाद भी मैप्स अपडेट अपडेट नहीं होंगे। मेरे फोन के ओएस को अपडेट करने के बाद, अपवाद गायब हो गया।


क्या यह केवल मानचित्र परिभाषाओं वाली फ़ाइलों को हटाने के लिए पर्याप्त नहीं होना चाहिए?
कोनराड विल्टर्स्टन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.