无法实例化名为MKMapView的类

问题描述 投票:160回答:9

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

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

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

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

ios ipad mkmapview
9个回答
375
投票

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

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

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

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


28
投票

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


27
投票

对于Xcode 6.1:

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

16
投票

简单的方法!

适用于Xcode版本7.2并经过测试,直到Verion xCode 10 beta版本

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

下面是截图。干杯!!

enter image description here


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,在设备上构建并运行,地图也正常工作。

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


3
投票

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

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

问题。

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

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

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


3
投票

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


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.