ChatGPT解决这个技术问题 Extra ChatGPT

无法实例化名为 MKMapView 的类

我可能在这里做一些非常愚蠢的事情,就像我以前做过的那样,它奏效了,现在......

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

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

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


J
JoBu1324

我也遇到了这个问题,但是按照链接中第 2 步的说明,我能够通过它(顺便说一句,谢谢):

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

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

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


很高兴它有帮助!我终于通过执行以下操作让它工作了: - 清理项目 - 重置设备 - 重新启动机器 不确定哪个是必要的,但它现在可以工作了 :)
添加 MapKit 框架也对我有用。我的代码调出了地图,一切正常。
如果有人在使用 xcode 4.2 时遇到此问题,即使在我添加框架后框架出现在 Frameworks 文件夹中,我也会收到错误消息。我单击目标,然后单击 Build Phases,并注意到它不在 Link Binary with Library 部分中。将它从框架文件夹拖到该部分可以解决问题。谢谢提示,
有点可悲,当您(从 Iterface Builder)拖动项目中未链接的视图时,它不会警告您。
A
Alice

单击您的项目以显示项目设置。在 Targets 下,单击您的项目,从上方工具栏中选择“Build Phases”。在“Link binary With Libraries”选项卡下,您将看到项目中包含的框架列表。单击“+”按钮并将 MapKit 库从显示的列表中添加到您的项目中。


只想提一下,这个问题很难检测,因为应用程序在 XCode 中以调试模式启动时可以正常工作。应用程序在设备/模拟器上直接启动时会失败(例如:通过点击图标)。
m
marc_aragones

对于 Xcode 6.1:

选择您的项目

在一般选项卡中,查找链接框架和库(最后一个)

按 + 按钮

搜索 MapKit.framework

最后添加


C
Community

简单的方法!

适用于 Xcode 7.2 版以上

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

这是随附的屏幕截图。干杯!!

https://i.stack.imgur.com/U78vD.png


这也适用于 Xcode 版本 8。在“Capabilities”下打开“Maps”后,它表明 MapKit.framework 将被链接。您还可以通过转到“Build Phases”并展开“Link Binary With Libraries”部分来确认这一点。您也应该在那里看到 MapKit.framework。
A
Austin Henley

对于 xCode 4.2:

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

f
futureshocked

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

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

然后我只是连接了我的 iPhone,在设备上构建和运行,地图就可以工作了。

所以看起来MapKit框架不能在386架构上编译,它需要设备。


C
Community

关于@futureshocked 的意见,我也遇到了

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

问题。

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

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

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


R
RonTor

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


仅删除带有地图定义的文件还不够吗?
N
Naloiko Eugene

https://i.stack.imgur.com/uNR3R.png


WebKitMKMapView 有什么关系?