Я прорабатываю основы Objective-C, я закончил синтаксис, но я до сих пор не делаю какие-то специфические вещи для ios.Во всяком случае, я пытаюсь выяснить HTTP-запросы, и я не могу заставить асинхронный пост работать правильно.
Я могу пойти очень просто (это работает):
NSString *doc = [NSString stringWithContentsOfURL:url usedEncoding:&encoding error:&error];
NSLog(@"%@", doc);
И я могу сделать синхронный запрос (также работает):
NSData *urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
NSString *doc = [[NSString alloc]initWithData:urlData encoding:NSASCIIStringEncoding];
Но когда я пытаюсь это сделать:
NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:url];
connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];
Я не могу заставить работать ни один из методов подключения, такие как didReceiveResponse или didReceiveData.
Итак, вот мои вопросы:
Будет ли то, что я пытаюсь сделать, работать в приложении c командной строкой?
- Делаетделегат должен быть "я"?Могу ли я создать собственный класс «делегата» и добавить методы, такие как:
-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSLog(@"Data");
}
- Если возможен пользовательский делегат, это хорошая идея?Должен ли я присоединить описанный выше метод didReceiveData к какому-либо классу, выполняющему соединение?
-Мне нужно, чтобы какое-то задание выполнялось непрерывно, чтобы моя программа не заканчивалась до того, как ответ поступит?
-Я полностью не лаю?Можете ли вы привести меня в порядок?
Заранее спасибо за ваше время.