web-dev-qa-db-ja.com

MKMapViewという名前のクラスをインスタンス化できませんでした

私は前にそれをやったので、ここで本当に愚かなことをしているかもしれませんが、それはうまくいきました...

新しいiPadプロジェクトを作成し、詳細ビューでMKMapViewを追加し、プロジェクトにMapKit.frameworkを追加し、ヘッダーにプロパティ/などを追加しました。プロジェクトを実行して、SIGABRTを取得します

****キャッチされない例外 'NSInvalidUnarchiveOperationException'によるアプリの終了、理由: 'MKMapViewという名前のクラスをインスタンス化できませんでした' **

私は http://mithin.in/2009/06/22/using-iphone-sdk-mapkit-framework-a-tutorial/ を見つけましたが、私が言ったように、すでにフレームワークを追加しています。私は何が欠けていますか?

161
tg2

私もこれに遭遇しましたが、リンクのステップ2の指示に従うことでそれを乗り越えることができました(ところで、ありがとう)。

  1. MapKitフレームワークをプロジェクトに追加します。 (Control +クリックフレームワークフォルダー->追加->既存のフレームワーク)

MapKit.frameworkを検索してプロジェクトに追加したところ、エラーはなくなりました。

まだマップコードを追加していません(IBにMapViewDelegateが接続されていますが)が、今のところ正常に機能しています!

375
JoBu1324

プロジェクトをクリックして、プロジェクト設定を表示します。 [ターゲット]でプロジェクトをクリックし、上部のツールバーから[ビルドフェーズ]を選択します。 「ライブラリとバイナリをリンク」タブの下に、プロジェクトに含まれるフレームワークのリストが表示されます。 [+]ボタンをクリックし、表示されたリストからMapKitライブラリをプロジェクトに追加します。

28
Alice

Xcode 6.1の場合:

  • プロジェクトを選択してください
  • 一般タブで、リンクされたフレームワークとライブラリ(最後の1つ)を探します
  • +ボタンを押す
  • 検索MapKit.framework
  • 最後に追加
27
marc_aragones

簡単な方法!

Xcodeバージョン7.2以上で動作し、Verion xCode 10ベータ版までテスト済み

機能に関するMAPSを選択すると、フレームワークがプロジェクトに自動的にリンクされます。機能->マップのマップボタンをチェックするだけです。

添付のスクリーンショットをご覧ください。 乾杯!!

enter image description here

16
dreamBegin

XCode 4.2の場合:

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

シミュレータでビルドして実行しているときに、(この投稿で言及した元のメッセージに加えて)このメッセージが表示されていることに気付きました。

ld:警告:ファイル/Users/peter/programming/iPhone/iNspector/MapKit.framework/MapKitを無視します。ファイルは、リンクされているアーキテクチャではないサポートされていないファイル形式用にビルドされました(i386)

その後、iPhoneを接続し、デバイス上でビルドして実行すると、マップが機能しました。

そのため、MapKitフレームワークは386アーキテクチャでコンパイルできず、デバイスが必要です。

3
futureshocked

@futureshockedの入力に関しては、

Id:警告:ファイル/blah.../MapKitを無視します。ファイルはリンクされているアーキテクチャではない、サポートされていないファイル形式用にビルドされました(i386)

問題。

**プロジェクトに追加したときに、MapKitフレームワークをローカルプロジェクトディレクトリにコピーしていないことを確認してください。誤ってこれを行ったため、XCodeで上記のエラーが表示されていました。そのため、(Finderの)プロジェクトディレクトリから削除し、再コンパイルしましたが、すべて正常に戻りました。

プロジェクトにフレームワークがない場合は、 上記の回答 に記載されているとおりに再リンクしてください。

MapKitの使用開始に関する優れたチュートリアルを見つけました。
http://www.youtube.com/watch?v=X-3jM24EIGM&feature=related

3
ecurb33

また、展開ターゲットを5.1に変更した後でも、5.1電話(XC 4.5)に展開しようとすると、このエラーを受け取りました。携帯電話にまだGoogleマップがあるので、地図の更新は飛ばないようです。電話のOSを更新した後、例外は消えました。

3
RonTor

ビルドフェーズでWebKitをインポートしてください。 You need to import the WebKit

2
Naloiko Eugene