Где находится любой WebClient на XCode на iPad - PullRequest
0 голосов
/ 26 марта 2012

Я ищу что-нибудь подобное .NET WebClient: где находится DownloadString? на XCode.

Всего один URL для отправки и одна строка для получения. У меня есть рабочее решение на iPhone и одно на Mac Project, но на iPad оно не работает.

Я нашел https://github.com/pokeb/asi-http-request, но в XCode 4.1 выдает ошибки о release is not supported.

Какие-либо предложения по загрузке веб-сайта на iPad с доступом HighLevel?

Какой класс будет использоваться в случае ASIHTTPRequest?

-(NSString*) DownloadString:(NSString *)UrlString;
{

    NSURL *url = [NSURL URLWithString:UrlString];

    // Create a request
    ASIHTTPRequest* myRequest = [ASIHTTPRequest requestWithURL:url];

    // Start the request
    [myRequest startSynchronous];

    // Request has now finished
    NSString *Result = [myRequest responseString];

    return Result;
}

* РЕШЕНИЕ (спасибо Франческо) *

NSString *UrlTargetString = @"http://www.goldengel.ch";
NSURL *UrlTarget = [NSURL URLWithString: UrlTargetString];


NSError* error = nil;
NSString* text = [NSString stringWithContentsOfURL:UrlTarget encoding:NSASCIIStringEncoding error:&error];
if( text )
{
    NSLog(@"Text=%@", text);
}
else 
{
    NSLog(@"Error = %@", error);
}

Ответ / Журнал:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>....</html>

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Вы также можете использовать строку NSStringWithContentsOfURL: кодировка: ошибка: метод.

Это синхронно, поэтому вы можете использовать dispatch_async, чтобы использовать его из основного потока.

dispatch_queue_t httpQueue = dispatch_queue_create(httpQueueName, NULL);
        dispatch_async(httpQueue, ^{
            NSString *response = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; 
//update UI
dispatch_async(dispatch_get_main_queue(), ^{
//code...
});
            });

РЕДАКТИРОВАТЬ: я обновил ответ: если вам нужно обновить какой-либо компонент пользовательского интерфейса, не забудьте сделать это внутри основного потока (чтобы вы могли использовать dispatch_async в основной очереди)

2 голосов
/ 30 марта 2012

ASIHTTPRequest является устаревшей платформой (разработчик заявил, что он больше не будет над ней работать) и не поддерживает ARC.ARC (автоматический подсчет ссылок) - это новая функция, предоставляемая в SDK5, которая автоматически выполняет всю работу по сохранению / выпуску.Это, конечно, требует, чтобы вы не использовали retain / release самостоятельно, как это делает ASIHTTPRequest.Поэтому ваши ошибки.

Чтобы отключить ARC в файлах, используйте флаг -fno-objc-arc, по этому поводу в Интернете и при переполнении стека имеется множество учебных пособий.Используя это, вы все еще можете использовать ASIHTTPRequest для своих текущих проектов, хотя это не рекомендуется.Например, см. Как отключить ARC для одного файла в проекте? - и сделать это для всех файлов ASIHTTPRequest.

Новые платформы включают в себя AFNetworking и RestKit и MKNetworkKit .

...