作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序是 iOS 的图像查看器。我允许用户从相机胶卷或云文件提供商处挑选文件。对于选择的每个文件,我都会创建一个书签,以便用户稍后返回查看文件,而无需再次执行相机胶卷/云文件选择器的所有步骤。相机胶卷书签始终如一地工作,但云文件提供者书签会随机失败,因为调用 URLByResolvingBookmarkData
返回 nil .返回的错误是:
"File Not Found"
来自 iCloud、DropBox、Box、Google Drive 等的文件会发生这种情况。以下是我创建和检索书签的方法:
// bookmark created from url returned by UIDocumentPickerViewController
NSData *bookmark = [url bookmarkDataWithOptions:options includingResourceValuesForKeys:nil relativeToURL:url error: nil];
// retrieving the URL from this bookmark works for a short time, then returns nil
url = [NSURL URLByResolvingBookmarkData:bookmark options:NSURLBookmarkResolutionWithoutUI relativeToURL:nil bookmarkDataIsStale:&isStale error:&error];
任何人都可以解释为什么书签会工作一段时间,然后失败?有限的存储/RAM?
我有一种感觉,答案是从云存储中保留文件的本地副本,因为不能保证可以多次访问它们。
最佳答案
您应该使用 startAccessingSecurityScopedResource
在 URL 上,确保调用 stopAccessingSecurityScopedResource
当你完成时。
或者,Apple 强烈建议使用 FileCoordinator 或 UIDocument 来管理对文件的访问。尤其是现在您可以访问其他应用程序也在访问的文件。
关于ios - NSURL URLByResolvingBookmarkData 似乎随机失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34555417/
我的应用程序是 iOS 的图像查看器。我允许用户从相机胶卷或云文件提供商处挑选文件。对于选择的每个文件,我都会创建一个书签,以便用户稍后返回查看文件,而无需再次执行相机胶卷/云文件选择器的所有步骤。相
我是一名优秀的程序员,十分优秀!