它调用应用程序(应用程序: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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)