Objective c 如何在沙盒环境中使用NSSavePanel获取权限
有一个沙盒环境的项目,现在我想让用户选择一个目录来保存文件。例如,当用户在“保存”面板中选择“桌面”时,我会将文件保存到目录“~/Desktop”。 代码如下:Objective c 如何在沙盒环境中使用NSSavePanel获取权限,objective-c,Objective C,有一个沙盒环境的项目,现在我想让用户选择一个目录来保存文件。例如,当用户在“保存”面板中选择“桌面”时,我会将文件保存到目录“~/Desktop”。 代码如下: NSSavePanel *savePanel = [NSSavePanel savePanel]; NSInteger result = [savePanel runModal]; if(result == NSFileHandlingPanelOKButton) { NSString *
NSSavePanel *savePanel = [NSSavePanel savePanel];
NSInteger result = [savePanel runModal];
if(result == NSFileHandlingPanelOKButton)
{
NSString *dir = [savePanel.URL.path.stringByDeletingLastPathComponent stringByAppendingPathComponent:@"2.txt"];
NSError *err;
NSLog(@"%@",dir);
[@"asasasa" writeToFile:dir atomically:YES encoding:NSUTF8StringEncoding error:&err];
NSLog(@"%@",err);
}
错误发生在code=513“您没有权限将文件“2.txt”保存在“Desktop”文件夹中。”
我已经在功能
设置中启用了读取/写入用户选择的文件
。任何人都可以告诉我现在该怎么做
提前感谢。您没有将文件保存到您获得权限的URL,您更改了URL。这是不允许的。
在“保存”面板中指定2.txt
,以便返回的URL为~/Desktop/2.txt
。然后保存即可
旁注:还有一个与URL相关的API,如writeToURL:atomically:encoding:error
和URLByAppendingPathComponent:
使用NSOpenPanel
选择目录。