ASIHTTPRequest вылетает на iOS 3.1.3 - PullRequest
0 голосов
/ 04 августа 2011

Мое приложение падает, как только я вызываю [[ASIHTTPRequest alloc] initWithURL: url];на моем iPod Touch 1G.Это не имеет проблем в iOS 4.x.

Я вижу ошибку: Ошибка 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] в одиночку, не выполняя ничего другого, например, установку пост-переменных и запуск соединения.Авария все еще происходит.

Я установил точки останова и веду журнал NSLogs внутри ASIHTTPRequest, но ничего полезного не вышло.

У кого-нибудь была похожая проблема?

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

После долгих раскопок я обнаружил, что проблема была очень глубокой, и на самом деле это была ошибка компилятора.

Короче говоря, использование LLVM 2.0 и установка уровня оптимизации> Нет для проекта привели к повреждению скомпилированных файлов (ASIHTTPRequest и ASIFormDataRequest), которая вызвала сбой и не предоставила реальных данных в трассировке стека.

Мы применили решение оставить параметры компилятора и оптимизации без изменений и добавить флаг компилятора -O0 для двух файлов ASIHttp, которые имелипроблема.

Другие пользователи сообщили, что XCode 4.0.2 исправил проблему с компилятором.

Для всех, кто интересуется, здесь есть некоторые подробности: http://groups.google.com/group/asihttprequest/browse_thread/thread/c598649bfe71643c/8ee09defd12386ba?lnk=gst&q=crashes#8ee09defd12386ba

0 голосов
/ 23 августа 2011

Возможно, в главном потоке что-то выполняется, что занимает более 10 секунд. Вы делаете синхронные запросы HTTP? Вы должны использовать:

[request startAsynchronous];

если вы в главном потоке.

...