Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift “无法将模块'metal'加载为'metal'”_Swift_Metal_Xcode11 - Fatal编程技术网

Swift “无法将模块'metal'加载为'metal'”

Swift “无法将模块'metal'加载为'metal'”,swift,metal,xcode11,Swift,Metal,Xcode11,我正在学习一门教程--学习如何使用金属。我已经完全按照教程的要求完成了,在我尝试构建它之前没有出现错误,然后它说构建失败,还有错误-无法将模块“metal”作为“metal”加载。 我在其他地方找不到答案,有人能帮我解决这个问题吗?我对编码还不熟悉,我希望这会有一个简单的解决方案 编辑:所以我发现确实有一个非常简单的解决方案。我还没有下载教程的材料。但现在,我发现了另一个错误,称使用未解析标识符“vertexBuffer” 这是我的全部代码,只是为了解决任何困惑- 斯威夫特视图控制器- 着色金属

我正在学习一门教程--学习如何使用金属。我已经完全按照教程的要求完成了,在我尝试构建它之前没有出现错误,然后它说构建失败,还有错误-无法将模块“metal”作为“metal”加载。 我在其他地方找不到答案,有人能帮我解决这个问题吗?我对编码还不熟悉,我希望这会有一个简单的解决方案

编辑:所以我发现确实有一个非常简单的解决方案。我还没有下载教程的材料。但现在,我发现了另一个错误,称使用未解析标识符“vertexBuffer”

这是我的全部代码,只是为了解决任何困惑-

斯威夫特视图控制器-

着色金属

注意-Shaders.metal是一个文件,教程中说要创建该文件

您需要导入金属框架,如下面“创建MTL设备”中所述

目前你做的如下操作是错误的

import metal

编译器检测到与Metal相似的名称,即Metal。有时库会在不同的版本中更改名称,这就是为什么它可能不同于您所遵循的教程


尝试按照错误建议执行操作,并将导入替换为:import metal

您需要一个var vertexBuffer:MTLBuffer变量

检查您的项目名称是否不是metal。如果我编写import metal,它只会给我相同的错误,但现在错误显示在编译器中,不是在尝试构建之后。我如何让代码在注释中独树一帜?要将代码排成一行,请将文本用倒勾“.当我这样做时,它只会说-file‘viewController.swift’是模块‘metal’的一部分;忽略导入然后只删除导入行
#include <metal_stdlib>
using namespace metal;

vertex float4 basic_vertex(                           // 1
  const device packed_float3* vertex_array [[ buffer(0) ]], // 2
  unsigned int vid [[ vertex_id ]]) {                 // 3
  return float4(vertex_array[vid], 1.0);              // 4
}

fragment half4 basic_fragment() { // 1
  return half4(1.0);              // 2
}
import Metal
import metal