无法实例化名为MKMapView的类


165

我以前在做过的事情可能真的很愚蠢,现在它一直有效...

创建了一个新的iPad项目,在详细信息视图中,我添加了MKMapView,将MapKit.framework添加到了项目,将属性/ etc。添加到了标题。前往执行专案并取得SIGABRT

****由于未捕获的异常“ NSInvalidUnarchiveOperationException”而终止应用程序,原因:“无法实例化名为MKMapView的类” **

我找到了http://mithin.in/2009/06/22/using-iphone-sdk-mapkit-framework-a-tutorial/,但正如我说的,我已经添加了框架。我想念什么?

Answers:


379

我也遇到了这个问题,但是我可以按照链接中第2步的说明来克服它(顺便说一下):

  1. 将MapKit框架添加到项目中。(Control +单击Frameworks文件夹->添加->现有框架)

我只是搜索MapKit.framework,将其添加到项目中,错误消失了。

我还没有添加任何地图代码(尽管我确实在IB中连接了MapViewDelegate),但是到目前为止,它工作正常!


很高兴它有所帮助!我确实通过执行以下操作使其工作:-清理项目-重置设备-重新启动计算机不确定哪个是必须的,但是现在可以正常工作了:)
tg2 2010年

1
添加MapKit框架也对我有用。我的代码显示了地图,一切正常。
finneycanhelp 2012年

4
如果有人在使用xcode 4.2时遇到此问题,即使在添加框架后该框架出现在Frameworks文件夹中,我仍然会收到错误消息。我单击了目标,然后单击了“构建阶段”,并注意到它不在“将二进制文件与库链接”部分中。将其从frameworks文件夹拖动到该部分可以解决此问题。感谢您的提示,
蒂姆·史蒂芬森,

1
很遗憾,当您拖动(从Iterface Builder中)未在项目中链接的视图时,它不会警告您。
Paul Brewczynski 2014年

30

单击您的项目以带来项目设置。在“目标”下,单击您的项目,然后从上方的工具栏“构建阶段”中进行选择。在“使用库链接二进制文件”选项卡下,您将看到项目中包含的框架列表。单击“ +”按钮,然后从显示的列表中将MapKit库添加到您的项目中。


27

对于Xcode 6.1:

  • 选择你的项目
  • 在常规标签中,查找链接的框架和库(最后一个)
  • 按下+按钮
  • 搜索MapKit.framework
  • 最后加

17

简单的方法!

适用于Xcode 7.2以上版本

就我而言,从功能中选择MAPS将自动将您的框架链接到您的项目,所有您需要做的就是检查“地图”按钮。 Capabilities-> Maps中

这是所附的截图。干杯!!

在此处输入图片说明


这也适用于Xcode版本8。在“功能”下切换“地图”后,表明MapKit.framework将被链接。您还可以通过转到“构建阶段”并展开“使用库链接二进制文件”部分来确认这一点。您也应该在那里看到MapKit.framework。
Ryan H.

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:警告:忽略文件/Users/peter/programming/iPhone/iNspector/MapKit.framework/MapKit,该文件是为不支持的文件格式(不是要链接的体系结构)构建的(i386)

然后,我只连接了我的iPhone,在该设备上构建并运行,地图就起作用了。

因此,似乎无法在386体系结构上编译MapKit框架,它需要设备。


3

关于@futureshocked的输入,我也遇到了

ID:警告:忽略文件/blah.../MapKit,该文件是为不受支持的文件格式(不是要链接的体系结构)构建的(i386)

问题。

**检查以确保您没有复制 MapKit框架添加到项目时到本地项目目录中。我不小心这样做了,并且XCode给了我上面的错误。因此我将其从我的项目目录(在Finder中)中删除,重新编译,一切恢复正常。

如果您的项目中没有Framework,请按照上面答案继续进行链接。

找到了有关MapKit入门的很好的教程:http : //www.youtube.com/watch? v = X-3jM24EIGM&feature = related


3

即使将部署目标更改为5.1,在尝试部署到5.1手机(带有XC 4.5)时,我也收到此错误。由于我的手机上仍然装有Google Maps,因此似乎无法进行地图更新。更新手机的操作系统后,异常消失了。


仅删除具有地图定义的文件是否足够?
Konrad Viltersten 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.