我的应用程序在调用[[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,但没有任何用处。
有没有人有类似的问题?
答案 0 :(得分: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
答案 1 :(得分:0)
你可能在主线程上运行的东西花了10多秒。你在做同步http请求吗?你必须使用:
[request startAsynchronous];
如果你在主线上。