0

一旦我调用 [[ASIHTTPRequest alloc] initWithURL:url]; 我的应用程序就会崩溃 在我的 iPod Touch 1G 上。它在 iOS 4.x 上没有问题。

我看到的错误是 Error Domain=ASIHTTPRequestErrorDomain Code=10 UserInfo=0x368790 "NSRangeException"

我从我实施的崩溃管理系统中得到的回溯是

backtrace: (
"0   MayasDUp                            0x0007f21b -[SWCrashManager backtrace] + 18",
"1   MayasDUp                            0x0007ece1 sighandler + 144",
"2   libSystem.B.dylib                   0x3049e7eb _sigtramp + 26",
"3   MayasDUp                            0x0005128b -[ASIHTTPRequest buildPostBody] + 850"

)

我什至单独放置了 [[ASIHTTPRequest alloc] initWithURL:url] 调用,没有执行任何其他操作,例如设置 post 变量和启动连接。崩溃仍然发生。

我在 ASIHTTPRequest 中放置了断点并记录了 NSLog,但没有任何有用的结果。

有没有人有类似的问题?

4

2 回答 2

1

经过一番挖掘,我发现问题很深,实际上是一个编译器错误。

简而言之,使用 LLVM 2.0 并为项目设置优化级别 > 无会导致编译文件(ASIHTTPRequest 和 ASIFormDataRequest)损坏,从而导致崩溃并且在堆栈跟踪中没有提供任何真实数据。

我们应用的解决方案是保持编译器和优化设置不变,并为有问题的 2 个 ASIHttp 文件添加 -O0 编译器标志。

其他用户报告说 XCode 4.0.2 修复了编译器问题。

对于任何有兴趣的人,这里有一些详细信息:http: //groups.google.com/group/asihttprequest/browse_thread/thread/c598649bfe71643c/8ee09defd12386ba?lnk=gst&q= crashes#8ee09defd12386ba

于 2011-09-06T08:35:01.323 回答
0

您可能在主线程上运行了一些超过 10 秒的东西。你在做同步http请求吗?您必须使用:

[request startAsynchronous];

如果你在主线程上。

于 2011-08-23T18:52:36.510 回答