问题描述
刚开始在Xcode上使用Swift。
由于某种原因,无论何时我想编译,它都会显示错误:<unkNown>:0: error: cannot load module 'main' as 'Swift'
我能找到解决方法的唯一方法是清理构建文件夹或自己删除构建文件夹,然后进行编译。
我的代码刚刚从以下更改:
print("Hello,world!")
到
print("Hello,world")
我做错了什么吗?
Xcode版本:带有Xcode 12.1工具链的12.1(12A7403)
编辑:
我创建的项目是一个命令行工具,选择了Swift作为语言。所有其他设置均为默认设置(至少我相信如此)
解决方法
理想情况下,您所做的一切都不应更改,因为您所做的只是更改字符串。我曾经发生过这种情况,在此之前,更改一些任意代码会极大地改变程序的编译,但是通常在重新启动IDE或重写代码后,它就会消失。
我要检查的第一件事是您的项目名称:如果您的项目名称是'main',则编译器会将主模块与您的目标名称混淆(在这种情况下,您的目标名称与您的项目名称相同) )
您可以采取一些措施进行故障排除:
- 完全重新启动Xcode并重新打开项目。
- 删除文件并使用相同的代码创建一个新文件。
- 将代码改回
print("Hello,World!")
,然后查看代码是否再次开始工作。 - 如果上述选项不起作用,请尝试删除派生数据文件夹(有时它可能会起作用,无缘无故地导致构建时错误)。
- 如果删除派生数据无效,请打开一个新项目,然后尝试再次将
print("Hello,World!")
更改为print("Hello,World")
,并查看是否有任何更改。您的初始项目中可能有损坏的文件。 (根据您的问题,您似乎已经完成了此操作,但是无论如何都要删除派生数据后再试一次。)
发现问题可能是因为我有一个名为Swift
的项目。
不确定其背后的确切原因,但是名称Swift
可能引起了某些问题。