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

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

概述我在另一个应用程序的应用程序中打开了一个PNG文件. 它调用应用程序(应用程序:UIApplication,handleOpenURL url:NSURL) – >布尔这个功能. 以下是我测试即将到来的文件是否有效的方法: func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool { var 我在另一个应用程序的应用程序中打开了一个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的原因.

总结

以上是内存溢出为你收集整理的url.isFileReferenceURL()在IOS中为本地文件返回false全部内容,希望文章能够帮你解决url.isFileReferenceURL()在IOS中为本地文件返回false所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1036393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存