Приложение WAIT for -initWithContentsOfURL: для получения веб-данных? - PullRequest
0 голосов
/ 21 июня 2009

Я пытаюсь получить данные из файла .php на сервере из приложения iPhone OS. В одном методе я использую следующий код:

NSString *aString = [[NSString alloc] initWithContentsOfURL:aURL encoding:anEncoding error:nil];

//See what I got
NSLog(aString);

Когда я запускаю приложение, кажется, что приложение проходит через код так быстро, что я сомневаюсь, что было достаточно времени для запроса данных. Полученная строка полностью пуста, что еще больше подтверждает мои подозрения. Что здесь происходит? Не ожидает ли приложение, что -initWithContentsOfURL получит данные из файла .php на моем сервере? Если приложение не ожидает этот метод, есть ли другой метод, который я могу использовать для выполнения запроса данных таким образом, который ЖДЕТ завершения запроса до перехода к следующему коду?

(Я также немного читал о NSURLConnection - возможно, это то, что мне следует изучить вместо -initWithContentsOfURL?)

1 Ответ

3 голосов
/ 21 июня 2009

NSURLConnection отлично подходит для получения файла из Интернета ... Он не "сам по себе", а его обратные вызовы делегатов:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connectionDidFinishLoading:(NSURLConnection *)connection

... позволяет получать уведомления, когда данные получены и когда данные полностью загружены. Таким образом, вы можете заставить приложение показывать (если хотите) UIProgressBar при поступлении данных, а затем обрабатывать файл по своему усмотрению, когда он будет полностью принят.

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