Pregunta iPhone - NSData de la URL del archivo local


tengo un NSURL objeto que me da la ruta de un archivo local (en la carpeta de documentos). Quiero poblar un NSData objeto con el contenido de este archivo. Trató de usar dataWithContentsOfURL: pero esto falla. Sé que el archivo existe porque el iPhone SDK devuelve el camino.

¿Puede alguien decirme cómo puedo obtener un NSData objeto de la URL de un archivo local?

Gracias.


74
2017-10-03 17:29


origen


Respuestas:


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

152
2017-10-03 17:43



Para hacer esto, solo tienes que hacer:

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];

25
2017-11-16 09:33



Asegúrese de que su URL local comience con "file: //" entonces solo tendrías que hacer esto:

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

1
2017-08-05 09:56



Para swift3 encontré útil la respuesta de la siguiente URL

(Estaba siguiendo la ruta siguiente, después de capturar la imagen usando el complemento phonegap

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

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

si deja que videoURL = URL (cadena: urlString), deje que videodata = intente? Datos (contentsOf: videoURL) {      // Agrega el código de Alamofire aquí }


0
2018-05-02 19:18