MKMapView adında sınıf başlatılamadı


165

Burada daha önce yaptığım gibi gerçekten aptalca bir şey yapıyor olabilirim ve işe yaradı ve şimdi ...

Yeni bir iPad projesi oluşturdum, ayrıntılar görünümünde bir MKMapView ekledim, projeye MapKit.framework ekledim, başlığa / etc özelliğini ekledim. Projeyi çalıştırmak için bir SIGABRT alın

**** Yakalanmayan istisna 'NSInvalidUnarchiveOperationException' nedeniyle uygulama sonlandırılıyor, nedeni: 'MKMapView adında sınıf başlatılamadı' **

Http://mithin.in/2009/06/22/using-iphone-sdk-mapkit-framework-a-tutorial/ buldum , ancak dediğim gibi zaten çerçeve ekledim. Neyi kaçırıyorum?

Yanıtlar:


379

Ben de buna rastladım, ancak bağlantınızdaki 2. adımdaki talimatları izleyerek geçebildim (teşekkürler, bu arada):

  1. MapKit çerçevesini projeye ekleyin. (Control + Tıkla Çerçeveler klasörü -> Ekle -> Mevcut Çerçeveler)

MapKit.framework'u aradım, projeye ekledim ve hata gitti.

Henüz bir harita kodu eklemedim (IB'ye bağlı bir MapViewDelegate olmasına rağmen), ancak şu ana kadar iyi çalışıyor!


Yardımcı oldu sevindim! Sonunda aşağıdakileri yaparak çalışmasını
sağladım

1
MapKit çerçevesini eklemek de benim için çalıştı. Kodum haritayı getirdi ve her şey iyi çalıştı.
finneycanhelp

4
Herkes xcode 4.2 ile bu soruna çalışırsa, ben ekledikten sonra çerçeve Frameworks klasöründe görünmesine rağmen hatayı alıyordum. Hedefi, ardından Yapı Aşamaları'nı tıkladım ve bunun İkili Kütüphaneye Bağla bölümünde olmadığını fark ettim. Çerçeveler klasöründen o bölüme sürüklemek sorunu çözdü. İpucu için teşekkürler,
Tim Stephenson

1
Projenizle bağlantılı olmayan (Iterface Builder'dan) görünümü sürüklediğinizde sizi uyarmaması biraz üzücü.
Paul Brewczynski

30

Proje ayarlarını getirmek için projenize tıklayın. Hedefler altında, projenizi tıklayın, üst araç çubuğundan "Derleme Aşamaları" nı seçin. "İkili Kitaplıklarıyla Bağla" sekmesi altında, projenize dahil edilen çerçevelerin listesini göreceksiniz. "+" Düğmesini tıklayın ve gösterilen listeden MapKit kütüphanesini projenize ekleyin.


27

Xcode 6.1 için:

  • Projenizi seçin
  • Genel sekmesinde Bağlantılı Çerçeveler ve Kütüphaneler (sonuncusu)
  • + Düğmesine basın
  • Arama MapKit.framework
  • Sonunda ekle

17

Kolay yol!

Xcode sürüm 7.2 üzerinde çalışır

Yeteneklerimden MAPS'ı seçmek, çerçevenizi projenize otomatik olarak bağlayacaktır. Yapmanız gereken tek şey, Yetenekler -> Haritalar'daki Haritalar düğmesini kontrol etmektir .

Ekli ekran görüntüsünü heres. Alkış !!

resim açıklamasını buraya girin


Bu, Xcode sürüm 8 için de geçerlidir. "Yetenekler" altında "Haritalar" ı açtıktan sonra, MapKit.framework öğesinin bağlanacağını gösterir. Bunu "Aşama Oluştur" a gidip "İkili Kitaplıklarıyla Bağla" bölümünü genişleterek de onaylayabilirsiniz. MapKit.çerçevesini de orada görmelisiniz.
Ryan H.

9

XCode 4.2 için:

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

3

Ben simülatörü üzerinde çalışırken ve çalışırken bu mesajı (bu yazıda belirtilen orijinalin üstünde) aldığımı fark ettim:

ld: uyarı: dosya yok sayılıyor /Users/peter/programming/iPhone/iNspector/MapKit.framework/MapKit, dosya, bağlanan mimari olmayan desteklenmeyen dosya formatı için oluşturuldu (i386)

Sonra sadece iPhone'umu bağladım, cihazı kurup çalıştırdım ve harita işe yaradı.

Görünüşe göre MapKit çerçevesi 386 mimarisinde derlenemiyor, cihaza ihtiyacı var.


3

@ Futureshocked'ın girdisiyle ilgili olarak,

Kimlik: uyarı: /blah.../MapKit dosyası yok sayılıyor, dosya, bağlanan mimari olmayan desteklenmeyen dosya biçimi için oluşturuldu (i386)

konu.

** MapKitÇerçeveyi projenize eklediğinizde çerçeveyi yerel proje dizininize kopyalamadığınızdan emin olun . Yanlışlıkla bunu yaptım ve XCode bana yukarıdaki hatayı veriyordu. Bu yüzden proje dizinimden (Finder'da) kaldırdım, yeniden derledim ve her şey tekrar normaldi.

Projenizde Çerçeve yoksa, devam edin ve yukarıdaki cevapta belirtildiği gibi yeniden bağlantı kurun .

MapKit ile çalışmaya başlama konusunda iyi bir eğitim buldu:
http://www.youtube.com/watch?v=X-3jM24EIGM&feature=related


3

Bu hatayı, dağıtım hedefimi 5.1 olarak değiştirdikten sonra bile 5.1 telefonuma (XC 4.5 ile) dağıtmaya çalışırken de aldım. Telefonumda hala Google Haritalar bulunduğundan haritalar güncellemesinin uçmayacağı anlaşılıyor. Telefonumun işletim sistemini güncelledikten sonra istisna ortadan kalktı.


Harita tanımlamalı dosyaları kaldırmak yeterli değil mi?
Konrad Viltersten

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.