url.isFileReferenceURL()在IOS中为本地文件返回false
我在另一个应用程序的应用程序中打开了一个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的原因. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – 如何在Rails上的url中放置电子邮件地址
- 正则表达式 – 在正则表达式中使用变量
- Ruby中的通配符字符串匹配
- c# – 内置异常处理的任务?
- ruby-on-rails – Rails 3.1部署到生产(使用Apache和Passen
- objective-c – 项目/工作空间中的类数
- objective-c – 什么可以阻止在动画期间遵守自动布局约束?
- 测试驱动开发实践 - Test-Driven Development(转载的)
- c – 如何使用一个unordered_map,其中值类型是它所在的类?
- OpenCV保存成XML(FileStorage)和CSV(重载<<运算符)文