iOS 3.1.3上的ASIHTTPRequest崩溃

iOS 3.1.3上的ASIHTTPRequest崩溃,ios,crash,asihttprequest,ios-3.x,Ios,Crash,Asihttprequest,Ios 3.x,我的应用程序在我调用[[ASIHTTPRequest alloc]initWithURL:url]时崩溃;在我的iPod Touch 1G上。它在iOS 4.x上没有问题 我看到的错误是错误域=ASIHTTPRequestErrorDomain代码=10 UserInfo=0x368790“NSRangeException” 我从我实现的崩溃管理器系统中得到的回溯是 backtrace: ( "0 MayasDUp 0x0007f21b

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

我看到的错误是错误域=ASIHTTPRequestErrorDomain代码=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变量和启动连接。坠机事件仍在发生

我已经将断点和日志NSLogs放在了ASIHTTPRequest中,但没有得到任何有用的结果


有人遇到过类似的问题吗?

您可能在主线程上运行的某个程序超过10秒。您正在执行同步http请求吗?您必须使用:

[request startAsynchronous];

如果你是在主线程上。

经过大量挖掘,我发现问题非常严重,实际上是一个编译器错误

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

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

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

对于任何感兴趣的人,这里有一些详细信息:

能否在调试器中运行它,并向我们显示它在buildPostBody中的哪一行崩溃?buildPostBody方法已完全执行。我在方法的最末端放置了一个NSLog调用和一个断点,执行正常地到达该点。应用程序在线程3上崩溃,它仅显示0节点以获取更多详细信息。崩溃似乎发生在一个小延迟之后,无法正常显示。您是否已在启用NSZombie的情况下运行过?出于某种原因,我无法让NSZombie显示。。。但在深入挖掘之后,我们发现问题来自[NSArray objectAtIndex:]调用,它试图访问[6],但长度为4。这就解释了我得到的NSRangeException错误。我在ASIHTTPRequest类中的每个objectAtIndex调用之前都放置了NSLogs,但是没有数组访问这样的索引。请尝试在objectAtIndex上设置断点?我使用的是startAsynchronous。还有一些东西需要很长时间才能运行。或者尝试使用工具运行以查看时间的去向,或者在超时发生之前暂停调试器,或者使用日志记录,或者发布更多代码。