У меня чертовски много времени с чем-то, что кажется
просто, но я не могу начать работать. Я строю
Приложение для iPhone, которое получает данные с веб-хостинга. Я пытаюсь
установить асинхронное соединение с хостом, так как я хочу сохранить
устройство освобождено во время соединения. (sendSynchronousRequest зависает
телефон, пока запрос не будет выполнен.) Вот мой код подключения:
//temp url to see if data is returned:
NSURL *theURL = [NSURL URLWithString:@"http://www.theappleblog.com/feed"];
NSURLRequest *dataRequest = [NSURLRequest requestWithURL:theURL
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:60];
/* establish the connection */
theConnection = [[NSURLConnection alloc]
initWithRequest:dataRequest
delegate:self
startImmediately:YES];
if (theConnection == nil) {
NSLog(@"Connection Failure!");
self.urlData = nil;
} else {
self.urlData = [[NSMutableData data] retain];
}
У меня настроены все соответствующие методы делегата:
-(void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse*)response
{
[urlData setLength:0];
UIApplication *application = [UIApplication sharedApplication];
application.networkActivityIndicatorVisible = YES;
NSLog(@"Received Response!");
}
-(void)connection:(NSURLConnection *)connection
didReceiveData:(NSData*)incrementalData
{
[self.urlData appendData:incrementalData];
NSNumber *resourceLength = [NSNumber
numberWithUnsignedInteger:[self.urlData length]];
NSLog(@"resourceData length: %d", [resourceLength intValue]);
NSLog(@"filesize: %d", self.urlDataSize);
NSLog(@"float filesize: %f", [self.urlDataSize floatValue]);
}
-(void)connectionDidFinishLoading:(NSURLConnection*)connection
{
NSLog(@"Connection finished loading\n");
NSLog(@"Succeeded! Received %d bytes of data",[urlData length]);
_isFinished = YES;
UIApplication *application = [UIApplication sharedApplication];
application.networkActivityIndicatorVisible = NO;
}
- (void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error
{
NSLog(@"Error: %@",[error localizedDescription]);
}
Как видите, я получил кучу сообщений журнала, потому что хотел
чтобы увидеть, если что-нибудь проходил вообще. Тест моего соединения
возвращается как TRUE, но данные никогда не загружаются. Как я уже сказал, я уверен
Я должен делать (или не делать) что-то действительно глупо. Но что?
Любая помощь будет наиболее ценной.
Спасибо, Лоуренс