将目录移动到另一台计算机后,如何从书签重新命名NSURL

时间:2018-10-02 12:02:57

标签: macos relative-path nsurl bookmarks

我的应用程序使用NSDocument的子类并保存一些文件的URL。

通过使用书签,移动或重命名文件,请不要断开文件链接。

问题是,如果同时包含文档和文件的目录从一台Mac移动到另一台Mac,则书签无法解析URL。

  

(错误域= NSCocoaErrorDomain代码= 4“文件不存在。”)

将NSURL编码为NSData

[url bookmarkDataWithOptions:NSURLBookmarkCreationSuitableForBookmarkFile includingResourceValuesForKeys:nil relativeToURL:inDocumentURL error:&error];

从NSData解码NSURL

NSURL *url = [[NSURL alloc] initByResolvingBookmarkData:bookmark options:0 relativeToURL:inDocumentURL bookmarkDataIsStale:NULL error:&error];

如果解析失败或我的代码有问题,我也应该将相对路径存储为字符串吗?

0 个答案:

没有答案