Wenn Sie NSURLConnection
verwenden, funktioniert es genau die gleiche Art und Weise, egal, welche Art der Datei hat.
Beispiel: (getippt von meinem Kopf, keine Garantie, dass es funktioniert auf diese Weise, und Sie sollten offensichtlich implementieren Fehlerprüfung)
- (void) download
{
self.loadedData = [NSMutableData data]; // make 'loadedData' a property of the class
NSURL *url = [NSURL URLWithString:@"http://..."];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:20.0];
[urlRequest setValue:@"Optional User Agent" forHTTPHeaderField:@"User-Agent"];
// shoot it off
NSURLConnection *mainConnection = [NSURLConnection connectionWithRequest:urlRequest delegate:self];
if (nil == mainConnection) {
NSLog(@"Could not create the NSURLConnection object");
}
}
Dann Sie die eingehenden Daten in den Delegaten behandeln müssen Methoden, z Speichern Sie Ihre Daten einfach:
- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[loadedData appendData:data];
}
Werfen Sie einen Blick auf die anderen Delegatmethoden und setzen sie, sollten Sie mit Authentifizierung Herausforderungen bewältigen und Antworten scheitern. Sie können auch zum Beispiel ein:
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
in connection:didReceiveResponse:
und setzen Sie sich auf NO
wieder in connectionDidFinishLoading:
.
Hallo Pascal, Danke für diesen Code. es funktioniert für mich. und ich speichere einfach die nsdata in der Datei, während ich andere Dateien speichere (png, txt, xml). – Rupesh
@rupesh können Sie Ihren Code teilen, wie ich auch nach einem einfachen Beispiel suche – Pooja