iPhone - 线程 1 EXC_BAD_INSTRUCTION 错误,控制台中没有打印任何内容

Posted

技术标签:

【中文标题】iPhone - 线程 1 EXC_BAD_INSTRUCTION 错误,控制台中没有打印任何内容【英文标题】:iPhone - Thread 1 EXC_BAD_INSTRUCTION Error with nothing printed in console 【发布时间】:2016-09-11 17:38:08 【问题描述】:

重要编辑:我刚刚意识到,在以前的版本中,该应用程序用于显示右上角的图标,但现在在这个新版本中没有。为什么会发生这种情况 资产目录是一样的!!!我认为资产肯定有问题,但我知道不是资产本身。

我有一个应用程序正在抛出线程 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 位于我的资产文件夹中,我仔细检查了它们是否存在于资产文件夹中名为“covers”的子文件夹中。此外,当输入他们的名字时,Xcode 会建议他们的名字并显示 uiimage 的样子,所以我知道它肯定存在。因此,我不知道问题是什么。

我在该行之前和之后都做了断点,并且确信它发生在该行上。此外,当我更改图像以显示不在资产文件夹中的 UIImages 时,我在项目中使用资产文件夹中的图像的另一行上遇到相同的异常(因此它可能与资产文件夹有关)。

其他说明:没有控制台输出(我在其他地方打印东西,所以我知道控制台正在工作)当它崩溃时,我正在与使用 github 的人合作,并且在我的合作伙伴最后一次提交之前(这没有改变任何东西与抛出错误的类)它工作(我不知道它为什么停止工作),我正在使用 Xcode 8 beta 6

以下是我看到的一些图片:

当然,控制台中除了 (lldb) 和我在应用程序启动时打印的一些内容之外什么都没有。

编辑:我已经重新安装了 Xcode 8 beta 6 并下载了一个非 github 连接的应用程序版本并尝试运行它但仍然一无所获。我已经多次清理项目。尝试做一些巧妙的断点操作,但一无所获。

编辑 2:我已下载 Xcode 8,尝试清除派生数据文件夹,尝试将派生数据文件夹链接到不是我桌面上的文件夹,而是链接到 git 的本地项目文件中的文件夹,这给了我数百个警告,但仍然没有任何效果。

【问题讨论】:

您是否尝试过清理项目? @RashwanL 是多次但没有帮助。 【参考方案1】:

我花了很长时间才解决这个问题,但问题是 Assets 文件夹已从构建阶段/复制包资源文件夹中删除。

【讨论】:

你是我今天的英雄! 谁能详细说明“从构建阶段/复制捆绑资源文件夹中删除”是什么意思? 这是怎么发生的?它永远工作,重新启动 xcode 和...这个【参考方案2】:

@computerscience32 答案的补充:如果您正在构建扩展程序(例如 iMessage 应用程序),请检查是否正在复制正确的资产。我有同样命名的应用程序和 iMessage 应用程序资产,但我没有注意到扩展程序不包含来自主应用程序的资产。

【讨论】:

【参考方案3】:

在我的情况下,图像位于文件夹中,但是当双击并选择图像时,该文件夹不包含在路径中。 我使用了一个随机文本编辑器来包含文件夹名称,因为我无法使用 XCode 对其进行编辑。

【讨论】:

以上是关于iPhone - 线程 1 EXC_BAD_INSTRUCTION 错误,控制台中没有打印任何内容的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 核心数据和多线程

关于 iPhone 上的多线程

iphone:performSelector:withObject:afterDelay:不能与后台线程一起使用?

iPhone:在多线程环境中发布 UIViewController 时出现问题

iPhone:NSFetchedResultsController,具有来自单独线程的委托和数据更新

从次线程访问实例属性(iPhone-SDK)