我已经看到了关于SO之间进行转换的许多问题NSURL和NSString.他们都涉及使用NSString *path = [myURL absoluteString];或NSString *path = [myURL path];. 这些方法之间的实际区别是什么? 是否有人应该使用另一个? 我尝试过咨询Apple Docs,但我觉得它不太有帮助.
我习惯于在网站和有关在不同机器之间发送信息的其他主题的讨论中提及URL,而在单个机器上处理文件结构时从未被提及过.也许这就是我的一些困惑所在,因为它NSURL似乎是访问文件的首选方式,无论该文件是存在于网络上还是存在于本地设备上.或者这可能是一个完全不相关的话题.我甚至都不确定.
我目前正在我的应用中显示视频,我希望用户能够将其保存到其设备库/专辑照片/相机胶卷.这是我正在做的,但视频没有保存在相册中:/
func downloadVideo(videoImageUrl:String)
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
//All stuff here
print("downloadVideo");
let url=NSURL(string: videoImageUrl);
let urlData=NSData(contentsOfURL: url!);
if((urlData) != nil)
{
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0];
let fileName = videoImageUrl; //.stringByDeletingPathExtension
let filePath="\(documentsPath)/\(fileName)";
//saving is done on main thread
dispatch_async(dispatch_get_main_queue(), { () -> Void in
urlData?.writeToFile(filePath, atomically: true);
print("videoSaved");
})
}
})
}
Run Code Online (Sandbox Code Playgroud)
我也看看这个:
let url:NSURL = NSURL(string: fileURL)!;
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
let assetChangeRequest = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(url);
let assetPlaceHolder = assetChangeRequest!.placeholderForCreatedAsset;
let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: self.assetCollection)
albumChangeRequest!.addAssets([assetPlaceHolder!])
}, completionHandler: saveVideoCallBack)
Run Code Online (Sandbox Code Playgroud)
但我有错误"无法从文件创建数据(null)".我的"assetChangeRequest"是零.我不明白,因为我的网址是有效的,当我使用浏览器访问它时,它会下载一个快速时间文件.
如果有人可以帮助我,我们将不胜感激!我正在使用Swift并定位iOS …
我是 SWIFT/Programming 的新手,我找不到问题的答案,这就是为什么我要在这里试一试:
如何从 URL 下载视频 (mp4) 并将其存储在应用程序中**
我如何在容器中显示视频**
我已经找到了这个话题:
Swift - 使用 downloadTaskWithURL 下载视频
但就我而言,我不希望视频在相机胶卷中受到保护。就在应用程序中。
感谢您的任何帮助/提示!
我想在我的应用程序中访问用户照片库中的照片,我正在查看UIImagePickerController.但是,我想知道是否可以访问和查看照片库中的照片而不将这些照片实际存储在应用程序中?所以基本上应用程序会存储对所选照片的引用,而不是存储照片本身.这是为了防止应用程序占用大量空间来存储每张照片.
谢谢!
我正在使用QLPreviewController来预览文档.但我不知道如何显示存储在服务器上的文档.