我正在使用以下代码生成安全范围的书签。这在 10.8 和 10.9 上运行良好,但在 10.10 上已停止运行。我不知道要检查什么?
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setAllowsMultipleSelection:NO];
[panel setCanChooseDirectories:YES];
[panel setCanChooseFiles:NO];
[panel setResolvesAliases:YES];
[panel setCanCreateDirectories:YES];
[panel setTitle:@"Choose a directory as your input folder"];
[panel setPrompt:@"Choose"];
NSInteger result = [panel runModal];
if (result == NSFileHandlingPanelOKButton){
NSURL *urlPath = [[panel URLs] objectAtIndex:0];
NSError *error = nil;
NSData *bookmark = nil;
bookmark = [urlPath bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope
includingResourceValuesForKeys:nil
relativeToURL:nil
error:&error];
if (error) {
[NSApp presentError:error];
}
BOOL bookmarkDataIsStale;
NSURL *url = [NSURL URLByResolvingBookmarkData: bookmark
options:NSURLBookmarkResolutionWithSecurityScope
relativeToURL:nil
bookmarkDataIsStale:&bookmarkDataIsStale error:nil];
}
我已启用 App Sandbox 权利并添加了 com.apple.security.files.user-selected.read-write 和 com.apple.security.files.bookmarks.app-scope 权利。
以上是生成一个 URL,但它不是安全范围的。因此,当记录它时,它是通常的文件路径,而不是以前发生的 ? 然后是一堆字符。
任何帮助或想法表示赞赏