Приложение застряло при загрузке - PullRequest
0 голосов
/ 02 апреля 2012

Я работаю над приложением для iPhone, которое загружает список элементов Focus при каждом запуске приложения (6 элементов с изображениями).

Я использую 1 NSMutableURLRequest для загрузки 6 элементов текстовой информации в цикле, затем в том же блоке метода с другим для цикла, который я использую:

NSURL * imageURL = [NSURL URLWithString: strUrl];
NSData * imageData = [NSData dataWithContentsOfURL:imageURL];

для получения изображений всех 6 предметов. Код работает нормально, если я подожду, пока этот процесс завершится, и обновлю свой список на домашнем экране. Если я пытаюсь перемещаться, то мое приложение застревает до тех пор, пока не загрузится. Я вызвал метод complete в фоновом потоке, но все же он застрял для завершения процесса.

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

Заранее спасибо.

1 Ответ

0 голосов
/ 02 апреля 2012

Вы можете использовать NSURLConnections асинхронный запрос для загрузки в фоновом режиме

+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler`

Таким образом, загрузка не заблокирует ваш код.Вы также можете выполнить работу по завершению в фоновом потоке (если он не работает с пользовательским интерфейсом, этот код ВСЕГДА должен быть в основном потоке).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...