2011-03-04 12 views
0

格尔茨,应用被卡住时,在释放模式

我准备提交申请到AppStore的,但问题是,当我建立它在释放模式的应用被卡住(我必须建立它在释放模式为了提交到appStore?),但它加载从服务器检索到的第一个数据时卡住。这意味着我正在使用的MBProgressHUD就是无限期地显示,即使已经检索到一些数据(我检索带有数据和图像的JSON字符串)。

该应用程序在调试模式下工作和完美构建,出于某种原因,在发布模式下它没有。我试图在项目上做一个rm -rf的构建,并对其进行清理并无济于事。我试图从模拟器和设备中删除应用程序,但没有结果。我做错了什么,还是与代码有关?也许供应?

谢谢!

这些是我在发布模式下运行时获得的日志消息。该应用程序不会崩溃。

[11603:5d03] Starting asynchronous request <ASIHTTPRequest: 0x682e800> 
[11603:7803] Request #1 will use connection #1 
[11603:7803] Request <ASIHTTPRequest: 0x682e800> received response headers 
[11603:7803] Got a keep-alive header, 
      will keep this connection open for 5.000000 seconds 
[11603:7803] Request <ASIHTTPRequest: 0x682e800> finished downloading 
      data (227370 bytes) 
[11603:7803] Request #1 finished using connection #1 
[11603:7803] Request finished: <ASIHTTPRequest: 0x682e800> 

就是这样,应用程序实际上完成的请求,并成功但仍MBProgressHUD卡检索数据。

回答

0

原来,这显然是一个while循环的错误。这段时间是有目的的。但是当我把NSLog放在它里面时,发布模式工作得很好。非常奇怪和不规则。我想释放使用一些非常尴尬的配置,虽然它不应该。

+1

这不是不规则的。在发布模式下,编译器优化被关闭。 while循环可能会被优化掉,除非它对外界有影响。添加'NSLog()'显然使循环必须保持。另一种可能是'NSLog()'改变了确切的时间,这也受到构建设置的影响。 – mvds

+0

我现在明白了。谢谢你的解释。那时我很幸运地发现了这一点。 – Joze

0

再次测试应用程序的发布模式,是否发生崩溃?或者只是在某个执行点执行操作。你的日志消息说什么?

+0

我发布了问题的日志。我所看到的是应用程序设法检索我需要的数据,但加载器只是卡在屏幕上,阻止了所有的用户交互。这在调试模式下不会发生。该应用程序不会崩溃。它只是卡住了。 – Joze