You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS开发:Mapbox示例代码报‘Cannot find 'ResourceOptions' in scope’错误求助

解决Mapbox iOS中“Cannot find 'ResourceOptions' in scope”错误

核心原因

这个错误通常是因为你使用的Mapbox Maps SDK for iOS版本(v11+)已废弃ResourceOptions的直接实例化写法,官方示例代码可能对应旧版本,而你安装的是新版本SDK。

解决方案

1. 适配新版本SDK的代码写法

将原代码中创建ResourceOptions和MapInitOptions的部分替换为直接在MapInitOptions中传入accessToken:

// 无需单独创建ResourceOptions,直接在MapInitOptions中传入token
let myMapInitOptions = MapInitOptions(accessToken: "your_public_access_token")
mapView = MapView(frame: view.bounds, mapInitOptions: myMapInitOptions)

完整修改后的代码:

import UIKit
import MapboxMaps

class ViewController: UIViewController {

    internal var mapView: MapView!

    override public func viewDidLoad() {
        super.viewDidLoad()

        // 创建地图视图 - 适配v11+ SDK
        let myMapInitOptions = MapInitOptions(accessToken: "your_public_access_token")
        mapView = MapView(frame: view.bounds, mapInitOptions: myMapInitOptions)

        // 将地图相机聚焦在斯德哥尔摩
        mapView.mapboxMap.setCamera(
            to: CameraOptions(
                center: CLLocationCoordinate2D(
                    latitude: 59.31,
                    longitude: 18.06
                ),
                zoom: 9.0
            )
        )

        // 添加地图到视图
        self.view.addSubview(mapView)
    }
}

2. 验证依赖安装正确性

  • 执行以下命令重新安装Pod依赖,确保SDK版本匹配:
    pod deintegrate
    rm Podfile.lock
    pod install --repo-update
    
  • 检查Podfile中指定的Mapbox版本:如果明确指定了旧版本(如v10),则需对应使用旧版本写法,或升级到新版本并使用上述修改后的代码。

3. 彻底清理Xcode缓存

  • 关闭Xcode,删除DerivedData目录(路径:~/Library/Developer/Xcode/DerivedData)
  • 重新打开项目,执行Cmd+Shift+K清理构建文件夹,再重新构建项目。

内容的提问来源于stack exchange,提问作者MaisieLz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:22:42