web-dev-qa-db-ja.com

'NSInvalidUnarchiveOperationException'、理由: 'MKMapViewという名前のクラスをインスタンス化できませんでした'

ストーリーボードを使用してプロジェクトを行っています(ストーリーボードを初めて使用します)。ビューコントローラーの1つに、マップビューとプロトタイプセルを含むテーブルビューのビューがあります。マップキットフレームワークを含め、マップキットヘッダーは対応するビューコントローラーにインポートされます。しかし、私はこの奇妙なエラーを受け取っています。私は多くの投稿をチェックし、すべてがフレームワークが含まれていないケースを指しています。しかし、私はすべてを含めて、まだこの問題を抱えています。私は掃除して構築しましたが、それでもこの問題です。

*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named MKMapView'




#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>


@interface CategoryDetailViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,MKMapViewDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *mapview;

@property (weak, nonatomic) IBOutlet UITableView *tableView;

@end
17
sujith1406

簡単に聞こえるかもしれませんが、このアプリのプロジェクトフォルダーにマップキットファイルがコピーされました。Finderを使用してこのフォルダーから削除し、マップキットを再度追加しました。@ Craigによるコメントに感謝します。

5
sujith1406

MapKit.frameworkがプロジェクトに追加されていることを確認してください。

MapKitフレームワークを検証/プロジェクトに追加するには:

  • 左側のペインでプロジェクトファイルをクリックしてから、ビルドフェーズをクリックします。
  • 開くバイナリとライブラリのリンク
  • MapKit.frameworkが表示されない場合は、プラス記号をクリックして追加することをお勧めします。
57
Ed Trujillo

Swift新しいバージョンのXcodeを使用している場合、プロジェクト設定でこの機能をオンにするだけで、エラーはなくなります。

enter image description here

9
William T.

IOS用のWatchKit拡張機能を構築するときに、この問題が発生しました。リンクされたバイナリに加えて、コンパイル済みソースにファイルを追加する必要もありました。

1
Chris Hobbs