2015-12-03 90 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>