'NSInvalidUnarchiveOperationException',原因:'无法实例化名为MKMapView的类'

时间:2013-08-28 16:31:28

标签: ios storyboard mkmapview

我正在使用storyboard进行一个项目(第一次使用故事板)。在一个视图控制器中有一个带有mapview的视图和一个包含原型单元格的tableview。我已经包含了mapkit框架,并且mapkit标头被导入了相应的viewcontroller.But我得到这个奇怪的错误。我检查了很多帖子,所有都指向不包括框架的情况。但我已经包括一切仍然得到这个问题。我清理和建立但仍然是这个问题。建议

*** 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

4 个答案:

答案 0 :(得分:57)

确保将MapKit.framework添加到您的项目中。

验证/添加MapKit框架到您的项目:

  • 点击左侧窗格中的项目文件,然后点击构建阶段
  • 打开 Link Binary with Libraries
  • 如果您没有看到 MapKit.framework ,则需要点击加号添加。

答案 1 :(得分:9)

在Swift中使用较新版本的Xcode,您只需要在项目设置中启用此功能,错误就会消失。

enter image description here

答案 2 :(得分:5)

这可能听起来很简单但是在这个应用程序的项目文件夹中,mapkit文件被复制了,我通过finder从这个文件夹中删除了它,并再次添加了mapkit。现在它正在工作。感谢@Craig评论

答案 3 :(得分:1)

我在为iOS构建WatchKit扩展时看到了这个问题。除了链接的二进制文件,我还必须向Compiled Sources添加一个文件。