格尔茨,应用被卡住时,在释放模式
我准备提交申请到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卡检索数据。
这不是不规则的。在发布模式下,编译器优化被关闭。 while循环可能会被优化掉,除非它对外界有影响。添加'NSLog()'显然使循环必须保持。另一种可能是'NSLog()'改变了确切的时间,这也受到构建设置的影响。 – mvds
我现在明白了。谢谢你的解释。那时我很幸运地发现了这一点。 – Joze