加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

url.isFileReferenceURL()在IOS中为本地文件返回false

发布时间:2020-12-14 18:58:01 所属栏目:百科 来源:网络整理
导读:我在另一个应用程序的应用程序中打开了一个PNG文件. 它调用应用程序(应用程序:UIApplication,handleOpenURL url:NSURL) – 布尔这个功能. 以下是我测试即将到来的文件是否有效的方法: func application(application: UIApplication,handleOpenURL url: NS
我在另一个应用程序的应用程序中打开了一个PNG文件.

它调用应用程序(应用程序:UIApplication,handleOpenURL url:NSURL) – >布尔这个功能.

以下是我测试即将到来的文件是否有效的方法:

func application(application: UIApplication,handleOpenURL url: NSURL) -> Bool {
    var rootViewController : ViewController = self.window?.rootViewController as ViewController
    println("the received url is (url) and (url.isFileReferenceURL())")
    if url.isFileReferenceURL() {
        rootViewController.handleOpenURL(url)
        return true
    }

    return false
}

但是在调试时,url.isFileReferenceURL()对于示例文件链接返回false,如下所示:

file:///private/var/mobile/Applications/56-random-identifier/Documents/Inbox/whatever.png

这里发生了什么?为什么本地文件的函数返回false?谢谢!

解决方法

您误解了-isFileReferenceURL的含义.我猜你是否对URL是文件URL感兴趣;也就是说,它是指本地文件而不是远程资源.为此,您应该调用-isFileURL或等效地检查fileURL属性(例如url.fileURL).

文件URL有两种形式.有文件路径URL和文件引用URL.文件路径URL基于路径,正如您所期望的那样.如果移动了引用的文件,则URL不会将其跟踪到新位置.如果在路径上创建了不同的文件,则URL将引用该新文件.

文件引用URL是指文件系统中的基础文件对象,与路径无关.如果文件在同一卷中移动或重命名,则URL将跟踪该文件.它将继续引用它,即使它的路径已经改变.

您可以使用-filePathURL和-fileReferenceURL在两种风格之间来回转换.您可以使用-isFileReferenceURL确定风味.

使用任何WithPath:方法创建文件URL时,您将获得文件路径URL.这就是为什么你看到-isFileReferenceURL返回false的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读