禁用弧后应用程序崩溃
Posted
技术标签:
【中文标题】禁用弧后应用程序崩溃【英文标题】:App crashing after disabling arc 【发布时间】:2011-11-30 05:10:09 【问题描述】:我已经开发了一个在 sdk4 上开发的 ios3 和 ios4 项目。但是我的应用程序在 ios 5 上崩溃了,而它在较低版本上运行良好。
我猜这是由于 ios5 的 ARC 概念。
所以我尝试的是
已安装 sdk 4.2。
ARC 的 EDIT 选项中的折射器项目。(为 arc.i 继续转换时出现一些错误)。 从构建设置中禁用弧。 还设置标志 -fno-objc-arc
但没有运气应用仍然崩溃。
访问属性值时崩溃。
【问题讨论】:
哪里崩溃了?在什么代码上?还有更多信息吗? 所以“当我尝试在iOS5 SDK上运行我的应用程序时崩溃了。所以我启用了ARC,它崩溃了。然后我再次禁用ARC,它仍然崩溃。一定是ARC的错!”跨度> @NJones 你写这行是什么意思 我的意思是你指责 ARC 的理由似乎很可疑。 【参考方案1】:为什么你猜是 ARC? ARC 甚至不会发生,除非您特别要求它这样做。我打赌这与 ios 4 和 ios5 之间的 API 更改有关。
我的建议是在进行这些更改之前使用您的源代码控制返回到您的版本,在 ios5 上再次运行它,阅读堆栈跟踪,找出真正导致您的应用崩溃的原因。
【讨论】:
我已经用 ios 5 设备检查过旧版本。它正在崩溃。原因是将消息发送到已释放的实例。而如果我尝试使用 ios 4 则没有此类错误。所以这就是我猜测的原因 调试时不要猜测。 API 在主要版本之间发生变化,这有时会导致代码中的潜在问题浮出水面,而以前没有。同样,我建议您回滚源代码并找出导致释放实例的原因。 它在访问属性值时导致,但在 ios4 的情况下不会导致 忘记它在 iOS4 中不会崩溃的事实,它现在无关紧要。向我们展示崩溃时的堆栈跟踪。告诉你如何创建属性。向我们提供更多信息,也许我们可以告诉您崩溃的原因。以上是关于禁用弧后应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
如果在 iOS 设置中禁用相机,则在 AVCaptureDeviceInput 崩溃
禁用WerFault.exe /“应用程序已停止工作”崩溃对话框
Android 6 Permissions => 禁用权限并返回应用程序时崩溃