Ich habe eine Funktion, die bei aufrufen Daten in eine Datenbank im auf einem Webserver schreibt.
Wenn
ich die Funktion direkt aufgerufen wird, klappt alles wunderbar. Wenn
ich die Funktion aber in einen anderen Thread packe, um den Benutzer
nicht aufzuhalten, durchläuft er den Code zwar, schreibt aber keine
Daten auf den Webserver.
hier die Funktion
Alles anzeigen
Die NSLog's werden in beiden Fällen durchlaufen.
Wenn
ich die Funktion direkt aufgerufen wird, klappt alles wunderbar. Wenn
ich die Funktion aber in einen anderen Thread packe, um den Benutzer
nicht aufzuhalten, durchläuft er den Code zwar, schreibt aber keine
Daten auf den Webserver.
hier die Funktion
Quellcode
- - (void)dateneintragen {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- NSLog(@"Start DB ...");
- NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.telekom.de"]];
- NSURLRequest *request = [NSURLRequest requestWithURL:url];
- NSURLResponse *response = nil;
- NSError *error = nil;
- NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
- if ([error code] != kCFURLErrorNotConnectedToInternet) {
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- NSDate *date = [NSDate dateWithTimeIntervalSinceNow:0];
- [formatter setDateFormat:@"HH:mm:ss"];
- NSString *zeit = [formatter stringFromDate:date];
- [formatter setDateFormat:@"YYYY-MM-dd"];
- NSString *datum = [formatter stringFromDate:date];
- NSString *urlAddress = [NSString stringWithFormat:@"http://db......de/daten.php?a=test&d=%@&t=%@",datum,zeit];
- NSURL *url = [NSURL URLWithString:urlAddress];
- NSURLRequest *request = [NSURLRequest requestWithURL:url];
- NSURLConnection *connect = [[NSURLConnection alloc] initWithRequest:request delegate:self];
- [connect release];
- [formatter release];
- NSLog(@"%@",urlAddress);
- }
- data = nil;
- [self performSelectorOnMainThread:@selector(fertig) withObject:nil waitUntilDone:NO];
- [pool release];
- }
Die NSLog's werden in beiden Fällen durchlaufen.