Как отладить неотвечающий асинхронный NSURLConnection - PullRequest
1 голос
/ 09 июня 2011

и под отсутствием ответа я подразумеваю, что после первых трех успешных соединений четвертое соединение инициируется и ничего не происходит, не происходит сбоев, не выполняются никакие функции делегата, данные не отправляются (согласно wireshark) ... он просто сидит там?!

Я бьюсь головой об этом уже полтора дня ... Последняя версия iOS 4.3.3 xCode происходит на реальном устройстве точно так же, как и в симуляторе.Я прочитал все сообщения NSURLConnection на форумах разработчиков ... Я в растерянности.

От своего делегата приложения я запускаю асинхронную NSURLConnection в соответствии с документами Apple, используя делегат приложения в качестведелегат для NSURLConnection.

Из моего applicationDidFinishLaunching ... Я инициирую два начальных запроса, которые успешно возвращают XML, который я затем передаю в OperationQueue для анализа.Я могу даже зациклить, повторяя эти запросы без проблем, повторяя их 10 раз и работая просто отлично.

Следующая серия из пяти запросов запускается через пользовательский ввод.Первый запрос выполняется успешно и возвращает правильный ответ, затем создается следующий запрос и, когда он используется для создания NSURLConnection (как и все остальные), просто сидит там.?!

Обычные вызовы делегатов, которые я вижу по всем другим запросам, никогда не видны.По словам Wireshark, по проводам ничего не идет?Я переупорядочил запросы, и независимо от запроса после первого происходит сбой следующего (происходит сбой, поскольку ничего не происходит, никаких ошибок или прерываний, просто сидит там)

Это, очевидно, в моем коде, но яя слеп к этому.

Итак, какие еще инструменты я могу использовать для отладки асинхронного соединения NSURLC ... как я могу сказать, что он делает?если вообще.

Любые предложения по отладке NSURLConnection или другие способы позволяют сделать то же самое, что NSURLConnection делает ??

Спасибо за любую помощь, которую вы можете предложить ...

1 Ответ

2 голосов
/ 10 июня 2011

ОК отследил его ... Я наблюдал дамп стека в каждом потоке, когда собирался запустить каждое NSURLConnection, первые три были в основном потоке, как и ожидалось ... четвертый закончился вновый поток?!В одной из моих веток NSOperation?!?!Как оказалось, я непреднамеренно добавил логику (?), Которая запустила один мой NSURLConnection в последнем вызове NSOperation to didFinishParsing: таким образом, NSURLConnection был асинхронно запущен, а затем операция NSOperation прекращена ...>. <</p>

Итак, я 'Я переместу NSURLConnection из didFinishParsing, и он должен остаться в основном цикле, и я должен быть хорошим!

...