无法实例化名为MKMapView的类

时间:2010-08-19 13:07:58

标签: ios ipad mkmapview

我可能在这里做了一些非常愚蠢的事情,因为我之前已经完成了它现在有效了......

创建了一个新的iPad项目,在详细信息视图中我添加了一个MKMapView,将MapKit.framework添加到项目中,将属性/等添加到标题中。去运行项目并获得带有

的SIGABRT
  

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

我找到了http://mithin.in/2009/06/22/using-iphone-sdk-mapkit-framework-a-tutorial/,但就像我说的那样,我已经添加了框架。我错过了什么?

9 个答案:

答案 0 :(得分:375)

我也遇到了这个问题,但是我按照你的链接中的第2步的说明进行了操作(顺便说一句,谢谢):

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

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

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

答案 1 :(得分:28)

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

答案 2 :(得分:26)

对于Xcode 6.1:

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

答案 3 :(得分:15)

简单方法!

在Xcode 7.2版之上工作并测试到Verion xCode 10 beta版

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

附上截图。的干杯!!

enter image description here

答案 4 :(得分:9)

对于xCode 4.2:

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

答案 5 :(得分:3)

当我在模拟器上构建和运行时,我注意到我收到了此消息(在本文中提到的原始消息之上):

  

ld:警告:忽略文件   /Users/peter/programming/iPhone/iNspector/MapKit.framework/MapKit,   文件是为不支持的文件格式而构建的,而不是   被链接的架构(i386)

然后我就连接了我的iPhone,在设备上构建并运行,地图也正常工作。

所以似乎MapKit框架无法在386架构上编译,它需要设备。

答案 6 :(得分:3)

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

  

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

问题。

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

如果您的项目中没有框架,请按照answer above中的说明继续重新链接。

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

答案 7 :(得分:3)

我尝试部署到5.1手机(使用XC 4.5)时也收到此错误,即使将部署目标更改为5.1也是如此。看起来地图更新不会飞,因为我的手机上仍然有谷歌地图。更新手机的操作系统后,异常消失了。

答案 8 :(得分:2)

请在Build Phases导入WebKit。 You need to import the WebKit