У меня есть приложение на основе навигации. Нажмите кнопку на главном экране, затем я добавлю новый вид на контроллер навигации. Все довольно простые вещи.
Когда загружается новое представление, я выполняю запрос ASIHTTPRequest для получения некоторых данных JSON, представляющих собой список URL-адресов изображений.
Затем я делаю цикл for, создаю кучу запросов ASIHTTP, добавляю их в очередь и затем запускаю очередь.
Но если я нажму на кнопку «Назад» до завершения очереди, приложение вылетает, это приложение отображает дома и позволяет сказать, что вы выбрали неправильный дом, очень быстро нажмите назад, прежде чем отобразится какая-либо фотография, аварийный сбой.
Этот поток http://groups.google.com/group/asihttprequest/browse_thread/thread/3d4815198aa889b9 очень хорошо объясняет мою проблему, за исключением того, что я отменяю все запросы на просмотр, которые выгрузились, устанавливаю делегат равным nil и освобождаю очередь.
Тем не менее я терплю крах. Каждый раз, когда я пользуюсь 3G, у меня почти всегда происходит сбой, но на Wi-Fi очень сложно его сделать, но вполне выполнимо.
Почти в 80% случаев отладчик переходит на эту строку в ASIHTTPRequest.m
(void)requestReceivedResponseHeaders:(NSMutableDictionary *)newResponseHeaders {
if ([self error] || [self mainRequest]) { return; }
--> if (delegate && [delegate respondsToSelector:didReceiveResponseHeadersSelector]) {
Во многих случаях к нему переходят:
(void)requestReceivedResponseHeaders:(NSMutableDictionary *)newResponseHeaders {
if ([self error] || [self mainRequest]) { return; }
---> if (delegate && [delegate respondsToSelector:didReceiveResponseHeadersSelector]) {
Объявление в нескольких случаях попадает в мой основной цикл
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
--> int retVal = UIApplicationMain(argc, argv, nil, nil); with SIGBART error [pool release]; return retVal;
Я использую MBP и MacPro, последнюю версию OS X, Xcode 4.0.2 и тестирую на всех устройствах Apple, кроме оригинальных iPhone.
Я действительно не хочу переписывать все мое приложение, но есть ли что-нибудь еще, что можно сравнить с ASIHTTPRequest?