У меня есть NSURL
объект, который дает мне путь к локальному файлу (в папке с документами). Я хочу заполнить NSData
объект содержимым этого файла. Пытался использовать, dataWithContentsOfURL:
но это не удалось. Я знаю, что файл существует, потому что iPhone SDK
возвращает путь.
Может кто-нибудь сказать мне, как я могу получить NSData
объект из URL
локального файла?
Спасибо.
Ответы:
// Given some file path URL: NSURL *pathURL // Note: [pathURL isFileURL] must return YES NSString *path = [pathURL path]; NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
Код Swift:
let data = FileManager.default.contents(atPath: path)
источник
Для выполнения этой работы вам просто нужно сделать:
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];
источник
Убедитесь, что ваш локальный URL-адрес начинается с "file: //", тогда вам просто нужно будет сделать это:
NSData *fileData = [NSData dataWithContentsOfFile:fileURL.path];
источник
Для swift3 я нашел ответ со следующего полезного URL
(Я получил следующий путь после захвата изображения с помощью плагина phonegap
файл: ///var/mobile/Containers/Data/Application/B64B06DE-7976-45CF-9BE2-661F0F309A06/tmp/abcded.jpg)
https://stackoverflow.com/a/41043447/6383908
если разрешить videoURL = URL (строка: urlString), разрешить videodata = try? Data (contentsOf: videoURL) {// Добавьте сюда код Alamofire}
источник
guard let data = FileManager.default.contents(atPath: path) else { ...
источник