2

我正在使用NSURLOS X 10.6 中引入的新书签数据 API 将“别名”存储到文件系统资源。当我使用

+[NSURL URLByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:]

解析书签数据,nil如果文件不再存在,我会得到。由于我没有传入NSURLBookmarkResolutionWithoutUI书签解析选项,我希望得到一个对话框,就像当您打开不再解析的别名文件时 Finder 显示的那样(即取消、修复​​别名等的对话框) .

有没有办法NSURL自动提示重新连接/解决损坏的书签数据?

书签数据通过以下方式创建:

NSError *err
NSData *bookmarkData = [myFileURL bookmarkDataWithOptions:NSURLBookmarkCreationSuitableForBookmarkFile
                           includingResourceValuesForKeys:nil
                                            relativeToURL:nil
                                            error:&err];

虽然如果我使用0选项而不是NSURLBookmarkCreationSuitableForBookmarkFile.

我尝试通过以下方式解决相同的问题bookmarkData

BOOL stale;
NSError *err
NSURL *resolvedURL = [NSURL URLByResolvingBookmarkData:self.bookmarkData
                                               options:0
                         relativeToURL:nil
                               bookmarkDataIsStale:&stale
                                                 error:&err];

经历将书签数据写入 finder 别名文件的过程,然后通过从该文件中读取书签数据以及上述方法来解析 URL 也不会产生所需的 UI 结果(尽管在 Finder 中打开别名文件确实会产生所需的 UI 对话框)。

4

1 回答 1

6

否。书签/别名解析中可能涉及的 UI 是如果目标位于需要身份验证才能连接的未安装文件服务器上时显示的 UI。Finder 提供重新连接对话框以响应无法解析的别名;如果您希望您的应用程序具有类似的行为,您将需要自己实现它。

于 2010-02-10T07:21:55.147 回答