【问题标题】:NMAMapView initialization failed HERE iOS SDK bridgedNMAMapView 初始化失败 HERE iOS SDK 桥接
【发布时间】:2016-03-07 14:24:27
【问题描述】:

我正在尝试使用 HERE iOS Premium SDK 构建一个快速项目。经过大量尝试,我能够“成功地”将 obj-c HERE iOS Premium SDK 连接到我的 Swift 项目。我的项目编译并构建,但无法在运行时初始化地图视图。 我在应用委托中设置了我的密钥:

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!

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

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

【问题讨论】:

    标签: ios swift here-api bridge


    【解决方案1】:

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

    NMABundle.bundle 位于此路径中: NMAKit.framework/Versions/A/Resources/NMABundle.bundle

    【讨论】:

      【解决方案2】:

      您的project-bridging-Header.h 中没有 import NMAMapView !!! 试着关注这个网站, https://github.com/RYANCOAL/swift-with-AFNetworking 但是不需要安装 pod 和 pod search AFNetworking。 选择 yourproject.xcodeproj 像往常一样打开项目。

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - stackoverflow.com/help/how-to-answer
      • @RYANCOAL9999 在我的头文件中,我有以下内容:#import <NMAKit/NMAKit.h> NMAKit.h 依次导入所有其他需要的头文件,包括地图视图。我可以访问地图视图对象,这很奇怪,就像在我的 viewDidLoad 中我可以做这样的事情:mapView.addMapObject(mapCircle)mapView.setGeoCenter(NMAGeoCoordinates(latitude: 49.258867, longitude: -123.008046), withAnimation: NMAMapAnimation.Linear)
      • 因为有模块类,看起来像框架。模块类可以访问模块的其他.h文件- NMAMapView,没有这样一个文件,所以你可以做这样的事情,mapView.addMapObject(mapCircle)!!
      【解决方案3】:

      通过向项目添加核心功能解决了这个问题(请参阅我对原始问题的编辑)

      【讨论】:

        【解决方案4】:

        Objective-C 和 Swift 在同一个项目中

        MyApp-Bridging-Header.h

        //
        //  Use this file to import your target's public headers that you would like to expose to Swift.
        //
        
        #import <NMAKit/NMAKit.h>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-23
          • 1970-01-01
          • 2018-04-25
          • 1970-01-01
          • 1970-01-01
          • 2016-03-25
          • 2012-11-17
          相关资源
          最近更新 更多