2011-11-30 144 views
0

我有一个已开发的项目,用于在sdk4上开发的ios3和ios4,但我的应用程序在ios 5上运行正常,但在较低版本上运行正常。禁用弧后应用程序崩溃

正如我的猜测,这是由于ios5的ARC概念。

所以我试过的是

安装了sdk 4.2。

ARC编辑选项中的refractor项目(我在转换arc.i的过程中遇到了一些错误)。 构建设置中禁用的弧线。 也设置了标志-fno-objc-arc

但是没有运气应用仍然崩溃。

它在访问属性值时崩溃。

+0

它在哪里崩溃?在什么代码上?更多信息? – bryanmac

+0

所以“当我尝试在iOS5 SDK上运行它时,我的应用程序崩溃了,所以我启用了ARC并崩溃了,然后我禁用了ARC againg,并且它仍然崩溃,这一定是ARC的错! – NJones

+0

@NJones你写这行的意思是 –

回答

2

你为什么猜测它是ARC?除非你明确要求ARC这样做,ARC甚至不会发生。我敢打赌,它与iOS 4和ios5之间的API更改有关。

我的建议是在做出这些更改之前,使用源代码管理返回到您的版本,再次在ios5上运行它,读取堆栈跟踪,并找出真正导致您的应用程序崩溃的原因。

+0

我使用ios 5设备检查旧版本。它正在崩溃。原因是meesage发送到deallocated instance.while如果我尝试与ios 4没有这样的错误。所以这就是为什么我猜测 –

+0

你不应该猜测你什么时候调试。主要版本之间的API会发生变化,这有时会导致代码中的潜在问题在以前没有发生时浮出水面。同样,我建议你回滚你的源代码,找出导致释放实例的原因。 – sosborn

+0

它导致访问属性值,但不会导致在ios4的情况下 –