4

我正在使用基于文档的安全范围书签来存储对文档中文件的引用。我像这样创建它们:

_bookmark = [_url bookmarkDataWithOptions: NSURLBookmarkCreationWithSecurityScope 
           includingResourceValuesForKeys: nil
                            relativeToURL: relativeURL
                                    error: error];

relativeURL包含将存储书签的文档的 URL 。

我稍后使用以下方法解析书签:

resolvedURL = [NSURL URLByResolvingBookmarkData: bookmark 
                                        options: NSURLBookmarkResolutionWithoutMounting | NSURLBookmarkResolutionWithSecurityScope
                                  relativeToURL: url 
                            bookmarkDataIsStale: &isStale
                                          error: error];

只要文档和引用的文件保留在初始机器上,这就会起作用。然后我可以移动并重命名它们,它们会继续工作。

另一方面,如果我压缩包含文档和文件的文件夹,并将它们解压缩到另一台机器上,则书签无法解析。

出现的错误是code 4: File doesn't exist. 我验证文档仍然包含其安全范围属性并且确实如此。当然,文档和引用的文件实际上都存在。

我尝试从相对 URL 创建书签数据,但这并没有改变任何东西。从书签请求 URL 总是显示一个绝对 URL。

当文档和文件传输到另一台机器时,如何确保书签解析?

更新

苹果已经确认了这个问题。它在radar: 24126953. 不幸的是,有人告诉我,他们内部不同意是否应该解决这个问题。我希望他们有一天会。

4

0 回答 0