ASIHTTPRequest вылетает на iOS 3.1.3
Мое приложение падает, как только я вызываю [[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 и запуска соединения. Авария все еще случается.
Я поместил точки останова и зарегистрировал NSLogs внутри ASIHTTPRequest, но ничего полезного не вышло.
У кого-нибудь была похожая проблема?
2 ответа
После долгих поисков я обнаружил, что проблема была очень глубокой, и на самом деле это была ошибка компилятора.
Короче говоря, использование LLVM 2.0 и установка уровня оптимизации> Нет для проекта привели к повреждению скомпилированных файлов (ASIHTTPRequest и ASIFormDataRequest), что вызвало сбой и не предоставило реальных данных в трассировке стека.
Решение, которое мы применили, состояло в том, чтобы оставить параметры компилятора и оптимизации нетронутыми и добавить флаг компилятора -O0 для 2 файлов ASIHttp, которые имели проблему.
Другие пользователи сообщили, что XCode 4.0.2 исправил проблему с компилятором.
Для всех, кто заинтересован, есть некоторые подробности здесь: http://groups.google.com/group/asihttprequest/browse_thread/thread/c598649bfe71643c/8ee09defd12386ba?lnk=gst&q=crashes
Возможно, в главном потоке что-то выполняется, что занимает более 10 секунд. Вы делаете синхронные запросы HTTP? Вы должны использовать:
[request startAsynchronous];
если ты в главной теме.