iPhone - Может ли асинхронный HTTP-ответ NSURLConnection мешать выполнению процесса? - PullRequest
0 голосов
/ 14 августа 2011

У меня есть запрос:

[NSURLConnection connectionWithRequest:urlRequest delegate:self];

, который запущен.

Когда я получаю в любое время:

- (void)connectionDidFinishLoading:(NSURLConnection*)connection

Я изменяю содержимое массива (удаляю или добавляю элементы).

В другой части моей программы мне нужно проанализировать этот массив для работы с его содержимым.

Итак, вопрос в том, что: пока я работаю с содержимым массива (цикл «для ххх в массиве»), может ли ответ сервера (который может прийти в любое время) вызвать код connectionDidFinishLoading изменить этот массив и заставить все это рухнуть?

1 Ответ

1 голос
/ 14 августа 2011

Да, и это приведет к сбою вашего приложения. Вы можете работать с копией массива, который изменяется с помощью метода делегата NSURLConnection, или дождаться завершения метода, прежде чем выполнять итерацию по элементам в вашем массиве.

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

...