Tengo un NSURL
objeto que me da la ruta de un archivo local (en la carpeta de documentos). Quiero rellenar un NSData
objeto con el contenido de este archivo. Intenté usar dataWithContentsOfURL:
pero esto falla. Sé que el archivo existe porque el iPhone SDK
devuelve la ruta.
¿Alguien puede decirme cómo puedo obtener un NSData
objeto URL
de un archivo local?
Gracias.
Respuestas:
// Given some file path URL: NSURL *pathURL // Note: [pathURL isFileURL] must return YES NSString *path = [pathURL path]; NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
Código SWIFT:
let data = FileManager.default.contents(atPath: path)
fuente
Para conseguir este trabajo, solo necesita 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];
fuente
Asegúrese de que su URL local comience con "file: //", entonces solo tendría que hacer esto:
NSData *fileData = [NSData dataWithContentsOfFile:fileURL.path];
fuente
Para swift3 encontré útil la respuesta de la siguiente URL
(Estaba siguiendo la ruta, después de capturar la imagen usando el complemento phonegap
archivo: ///var/mobile/Containers/Data/Application/B64B06DE-7976-45CF-9BE2-661F0F309A06/tmp/abcded.jpg)
https://stackoverflow.com/a/41043447/6383908
si deja videoURL = URL (string: urlString), deje videodata = probar? Data (contentsOf: videoURL) {// Agrega el código de Alamofire aquí}
fuente
guard let data = FileManager.default.contents(atPath: path) else { ...
fuente