2015-12-03 94 views
1

我想使用HERE iOS Premium SDK构建一个swift项目。经过大量尝试后,我能够成功地将obj-c HERE iOS Premium SDK连接到我的Swift项目。我的项目编译和构建,但未能在运行时初始化地图视图。 设置我的钥匙在应用程序委托:NMAMapView初始化失败这里iOS SDK桥接

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    NMAApplicationContext.setAppId(kHelloMapAppID, appCode: kHelloMapAppCode, licenseKey: kHelloMapLicenseKey) 
    return true 
} 

我有NMAMapView的IBOutlet中的类型视图控制器:

@IBOutlet weak var mapView: NMAMapView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    let coordinates: NMAGeoCoordinates = NMAGeoCoordinates(latitude: 37.33233141, longitude: -122.0312186) 
    mapView.setGeoCenter(coordinates, withAnimation: .Rocket) 
    mapView.zoomLevel = 13.2 
    mapView.copyrightLogoPosition = NMALayoutPosition.BottomCenter 
} 

当我尝试运行它编译和构建应用程序,但是当使用视图控制器我收到以下错误消息

2015-12-02 22:34:31.045 BridgedHEREMapsSDK[1162:25254] Failed to set up map cache 
2015-12-02 22:34:31.046 BridgedHEREMapsSDK[1162:25254] *** NMAKit WARNING: Error: NMAMapView initialization failed 

我的视图仍然加载,但不显示地图。此外,在我的viewDidLoad方法中的代码在打印错误后运行。无论什么似乎在创建插座时发生:

@IBOutlet weak var mapView: NMAMapView! 

任何想法,将不胜感激。谢谢。

*****编辑*****
我在我的项目中创建了一个全新的项目,其中包括核心数据功能,现在它似乎正在工作。

回答

0

您的项目中没有导入NMAMapView-bridging-Header.h !!! 尝试关注本网站, https://github.com/RYANCOAL/swift-with-AFNetworking 但不需要安装pod和pod搜索AFNetworking。 选择yourproject.xcodeproj像往常一样打开项目。

+0

尽管此链接可能回答问题,但最好在此处包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - http://stackoverflow.com/help/how-to-answer –

+0

@ RYANCOAL9999在我的头文件中,我有以下内容: '#import ' NMAKit.h依次导入所有其他需要的标题,包括地图视图。 我可以访问地图视图对象,这是什么奇怪的,就像在我viewDidLoad中我可以做这样的事情: 'mapView.addMapObject(mapCircle)' 或 'mapView.setGeoCenter(NMAGeoCoordinates(纬度: 49.258867,经度:-123.008046),动画:NMAMapAnimation。Linear)' –

+0

它是因为有模块类,看起来像框架。模块类可以访问模块NMAMapView的其他.h文件,不需要这样的文件,所以你可以做这样的事情,mapView.addMapObject(mapCircle)! – RYANCOAL9999

1

您必须在“构建阶段”中的“复制包资源”中添加NMABundle.bundle。

enter image description here

NMABundle.bundle是在这条道路: NMAKit.framework /版本/ A /资源/ NMABundle.bundle

0

这通过将核心功能项目(见我的编辑来解决原来的问题)

0

Objective-C和斯威夫特在同一项目

MyApp的桥接,Header.h

// 
// Use this file to import your target's public headers that you would like to expose to Swift. 
// 

#import <NMAKit/NMAKit.h>