首页 > 解决方案 > 如何修复调用中参数“完成”的缺失参数(MapBox 场景工具包)

问题描述

我正在编写一个应用程序来使用 MapBox 场景套件查看 AR 中的位置。我不断收到错误消息“调用中的参数'完成'缺少参数”,并且似乎没有记录问题的地方。

我知道我过去(2018 年 8 月)工作过的代码,所以我相信框架已经更新。如果有人有任何建议,将不胜感激。

        if let terrainNode = terrainNode {
            terrainNode.scale = terrainNodeScale // Scale down map
            terrainNode.position = SCNVector3Make(0, -0.15, 0) // Place map slightly below clouds
            terrainNode.geometry?.materials = defaultMaterials() // Add default materials
            scene.rootNode.addChildNode(terrainNode)

            terrainNode.fetchTerrainHeights(minWallHeight: 100.0, enableDynamicShadows: true, progress: { progress, total in
            }, completion: {_ in
                NSLog("Terrain load complete")
            })

            terrainNode.fetchTerrainTexture(type, progress: { progress, total in
                self.progressView?.progress = progress
                NSLog("Texture load complete")
                terrainNode.geometry?.materials[4].diffuse.contents = image
            })
        }

在此处输入图像描述

标签: swiftswift4mapboxscenekit

解决方案


错误消息非常准确,并准确地告诉您需要做什么:在调用中添加一个completion 参数fetchTerrainTexture,如下所示:

terrainNode.fetchTerrainTexture(
    type, 
    progress: { progress, total in
        self.progressView?.progress = progress
        NSLog("Texture load complete")
        terrainNode.geometry?.materials[4].diffuse.contents = image 
    },
    completion: { image, fetchError in
        // whatever needs to be done on completion
    }
)

推荐阅读