相关疑难解决方法(0)

URLWithString和NSURL的fileURLWithPath有什么区别?

在我的代码中,我必须使用URLWithString播放流(HLS)视频和fileURLWithPath播放本地视频.

这两种方法有什么区别?我应该如何使用单一方法播放两个视频.

此外,我需要在HSL视频结束时将最后一帧显示为静止图像.它结束时现在显示空白屏幕.我该怎么做到这一点?

path objective-c nsurl nsstring ios

16
推荐指数
1
解决办法
1万
查看次数

Swift - 使用downloadTaskWithURL下载视频

我正在下载一个视频,感谢downloadTaskWithURL,我用这段代码将它保存到我的画廊:

    func saveVideoBis(fileStringURL:String){

    print("saveVideoBis");

    let url = NSURL(string: fileStringURL);
    (NSURLSession.sharedSession().downloadTaskWithURL(url!) { (location:NSURL?, r:NSURLResponse?, e:NSError?) -> Void in

        let mgr = NSFileManager.defaultManager()

        let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0];

        print(documentsPath);

        let destination = NSURL(string: NSString(format: "%@/%@", documentsPath, url!.lastPathComponent!) as String);

        print(destination);

        try? mgr.moveItemAtPath(location!.path!, toPath: destination!.path!)

        PHPhotoLibrary.requestAuthorization({ (a:PHAuthorizationStatus) -> Void in
            PHPhotoLibrary.sharedPhotoLibrary().performChanges({
                PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(destination!);
                }) { completed, error in
                    if completed {
                        print(error);
                        print("Video is saved!");
                        self.sendNotification();
                    }
            }
        })
    }).resume()
}
Run Code Online (Sandbox Code Playgroud)

它在我的模拟器上工作得非常好,但在我的iPad上,即使print("Video is saved!");显示,视频也不会保存.你知道为什么吗?

我的控制台中也出现了该消息

无法从文件创建数据(null)

iphone ipad ios nsurlsessiondownloadtask swift

10
推荐指数
1
解决办法
8849
查看次数

FileManager.default.removeItem不删除文件

我正在尝试从文档目录中FileManager.default.removeItem删除文件但不删除模拟器上的文件.这是我的代码:

if let dir = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first {
            do{
                let path = dir.appendingPathComponent(file).absoluteString
                do{
                    try FileManager.default.removeItem(atPath:path)
                }catch{
                    print(error)
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

但我总是失败.你们中的任何人都知道它失败的原因

nsfilemanager ios swift swift3

7
推荐指数
2
解决办法
5801
查看次数

URL.standardized和URL.absoluteURL有什么区别?

在Swift的URL类中,有.standardized.absoluteURL属性(.standardizedURL.absoluteURL.URLByStandardizingPath在Objective-C的NSURL中)。也有.standardizedFileURL

我不知道所有这些之间有什么区别,但是必须有一个,因为它们提供了所有这些,对吧?我的意思是很明显,.standardizedFileURL的意思是仅处理文件URL,但是除此之外(例如,如果所有都在文件URL上调用),有什么区别?


从上面链接的文档中:

迅速

标准化的

返回一个URL,该URL的任何实例都从其路径中删除“ ..”或“。”。

绝对网址

返回绝对URL。

讨论区

如果URL本身是绝对的,则将返回self。

标准化的文件URL

标准化文件URL的路径。

讨论区

如果is?File?URLfalse,则此方法返回self

目标C

标准化网址

URL副本,其中包含“ ..”或“。”的任何实例 从其路径中删除。(只读)

讨论区

此属性包含一个新NSURL对象,该对象使用接收者的路径(带有"..""."删除的任何实例)初始化。如果接收方不符合RFC 1808,则此属性包含nil。

绝对网址

指向与接收者相同资源的绝对URL。(只读)

讨论区

如果URL已经是绝对的,则此属性包含接收者的副本。根据RFC 1808执行解析。

URL通过标准化路径

使用绝对路径指向与原始URL相同资源的URL。(只读)

讨论区

该属性仅适用于带有以下文件的URL:路径方案。对于所有其他URL,它将返回原始URL的副本。

像一样string?By?Standardizing?Path,此属性可以在提供的URL中进行以下更改:

使用扩展初始代字号表达式string?By?Expanding?Tilde?In?Path。将空组件和对当前目录的引用(即序列“ //”和“ /./”)减少为单个路径分隔符。仅在绝对路径中,如果可能的话,使用string?By?Resolving?Symlinks?In?Path,将对父目录(即组件“ ..”)的引用解析为真实的父目录,该引用会查询文件系统以解析每个潜在的符号链接。

在相对路径中,由于无法解析符号链接,因此将保留对父目录的引用。如果结果仍然指示现有文件或目录(请咨询文件系统进行检查),则从路径中删除“ / private”的初始组件。

请注意,此属性包含的路径中可能仍包含符号链接组件。还要注意,此属性仅适用于文件路径(例如,URL的字符串表示形式)。

url swift

5
推荐指数
1
解决办法
1069
查看次数