Frage

Ich habe ein NSURL Objekt, das mir den Pfad einer lokalen Datei (in den Dokumenten-Ordner) gibt. Ich möchte ein NSData Objekt mit dem Inhalt dieser Datei füllen. Versuchen dataWithContentsOfURL: verwenden, aber dies nicht gelingt. Ich weiß, dass die Datei vorhanden ist, da das iPhone SDK den Pfad zurück.

Kann jemand bitte sagen Sie mir, wie ich ein NSData Objekt aus der URL einer lokalen Datei bekommen kann?

Danke.

War es hilfreich?

Lösung

// Given some file path URL: NSURL *pathURL
// Note: [pathURL isFileURL] must return YES
NSString *path = [pathURL path];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];

Andere Tipps

Um diese Arbeit zu bekommen, brauchen Sie nur zu tun:

NSURL *imgPath = [[NSBundle mainBundle] URLForResource:@"search" withExtension:@"png"];
NSString*stringPath = [imgPath absoluteString]; //this is correct  

//you can again use it in NSURL eg if you have async loading images and your mechanism 
//uses only url like mine (but sometimes i need local files to load)
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:stringPath]];
UIImage *ready = [[[UIImage alloc] initWithData:data] autorelease];

Stellen Sie sicher, Ihre lokale URL beginnt mit "file: //" dann würden Sie nur, dies zu tun:

 NSData *fileData = [NSData dataWithContentsOfFile:fileURL.path];

Für swift3 fand ich Antwort von folgenden URL hilfreich

(I wurde folgenden Pfad bekommen, nach der Aufnahme Bild mit phonegap Plugin

Datei: ///var/mobile/Containers/Data/Application/B64B06DE-7976-45CF-9BE2-661F0F309A06/tmp/abcded.jpg)

https://stackoverflow.com/a/41043447/6383908

wenn lassen videoURL = URL (string: urlString), lassen Sie Videodaten = versuchen? Daten (contentsOf: videoURL) {      // Fügen Sie den Code von Alamofire hier }

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top