Почему NSData dataWithContentsOfURL иногда возвращает значение NULL?

Я благодарен за статью Преобразовать байты NSData в NSString? , особенно за @ christo16. Раньше я зависел от ASIHttpRequest только для того, чтобы получить значение от PHP-сервера. Теперь, используя только эту строку кода:

NSString *pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://www.apple.com"]]

я могу получить желаемую функциональность.

Но почему иногда эта строка приводит к тому, что pageContents имеет значение NULL. Я уже изменил эту строку на такую:

NSString *fullUrl = [NSString stringWithFormat:@"http://www.apple.com"];
NSURL *url = [[NSURL alloc] initWithString:fullUrl];
NSData *pageContents;
NSString *response = NULL;

while(response==NULL)
{
    pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:fullUrl]];
    response = [NSString stringWithUTF8String:[pageContents bytes]];
    NSLog(@"content = %@", response);
}

Есть ли лучший способ сделать это? До сих пор у меня нет проблем. Мне просто интересно, есть ли более элегантный способ достижения того же результата

Спасибо

7
задан Community 23 May 2017 в 11:46
поделиться