重要编辑:我刚刚意识到,在以前的版本中,该应用程序用于显示顶角的图标,但现在不在这个新版本中。为什么发生这样的资产目录是相同的!我认为资产一定存在问题,但我知道资产本身并不存在。
我有一个应用程序正在抛出一个线程1 EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0),但根本没有在控制台中打印任何内容。以下是突出显示的代码行:
var examples:[String: UIImage] = ["A": #imageLiteral(resourceName: "b"), "C" : #imageLiteral(resourceName: "d"), "E": #imageLiteral(resourceName: "f"), "G": #imageLiteral(resourceName: "H"), "I": #imageLiteral(resourceName: "j")]
在这里,我只是声明一个包含与UIImages相对应的字符串的数组。这些UIImages位于我的资源文件夹中,我仔细检查过它们是否存在于名为" cover"的子文件夹的assets文件夹中。此外,当输入他们的名字时,Xcode会建议他们的名字并显示uiimage的样子,所以我知道它肯定存在。因此我不知道问题是什么。
我在该行之前和之后都做过断点,并确定它出现在该行上。此外,当我更改图像以显示不在资源文件夹中的UIImages时,我在项目中使用assets文件夹中的图像的另一行上获得相同的异常(因此可能与资产文件夹有关)。
其他注意事项:没有控制台输出(我在其他地方打印,因此我知道控制台正在工作)当它崩溃时,我正在与使用github的人和我的合作伙伴之前合作。最后一次提交(对于抛出错误的类没有任何改变)它工作(我不知道为什么它停止工作),我正在使用Xcode 8 beta 6
以下是我所看到的一些图片:
当然,在控制台中没有任何东西,但是(lldb)和我在应用程序启动时打印的一些内容。
编辑:我重新安装了Xcode 8 beta 6并下载了一个非github连接版本的应用程序并尝试运行它但仍然没有任何结果。我已多次清理项目了。试图做一些聪明的断点,但一无所获。
编辑2:我已经下载了Xcode 8,尝试清除派生数据文件夹,尝试将派生数据文件夹链接到我桌面上的文件夹,但链接到git的本地项目文件中的文件夹给了我数百个警告,但仍然无效。
答案 0 :(得分:6)
这花了我很长时间才解决,但问题是Assets文件夹已从构建阶段/复制包资源文件夹中删除。
答案 1 :(得分:2)
@ computerscience32的补充回答:如果您正在构建扩展程序(例如iMessage应用程序),请检查是否正在复制正确的资产。我同样命名了应用程序和iMessage应用程序资产,但我没有注意到扩展程序不包含来自主应用程序的资产。
答案 2 :(得分:0)
就我而言,图像位于文件夹中,但是双击并选择图像时,该路径中不包含该文件夹。 我使用随机文本编辑器来包含文件夹名称,因为我无法使用XCode对其进行编辑。