5

サンドボックス化されたアプリケーション [OS X] でファイルをパスに保存しようとしていますが、これまで保存しようとするたびにエラーが発生しています。エラーは..

Error saving: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “test.txt” in the folder “Testing”." UserInfo=0x1001f5e70 {NSFilePath=/Users/Seb/Desktop/Testing/test.txt, NSUnderlyingError=0x1001f5d70 "The operation couldn’t be completed. Operation not permitted"}

資格の「ユーザーが選択したファイル」を「読み取り/書き込みアクセス」に設定しました。

私のコード..

NSString *saveLoc = [NSString stringWithFormat:@"%@/%@.txt",[[NSURL URLWithString:[[NSUserDefaults standardUserDefaults] valueForKey:@"saveURL"]] path],self.theWindow.title];
NSURL *saveURL = [NSURL fileURLWithPath:saveLoc];

NSLog(@"Saving to: %@",saveLoc);

NSError *err = nil;
[self.textView.string writeToURL:saveURL atomically:YES encoding:NSUTF8StringEncoding error:&err];

if (err) {
    NSLog(@"Error saving: %@",err);
    [[NSAlert alertWithError:err] beginSheetModalForWindow:self.theWindow
                                                       modalDelegate:nil
                                                      didEndSelector:NULL
                                                         contextInfo:nil];
}

私は何を間違っていますか?ファイルを保存するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

10

サンドボックス外のファイルを読み書きするには、そのファイルまたは上記のディレクトリのいずれかへのユーザー アクセスを取得する必要があります。NSOpenPanelNSSavePanelまたはドラッグ アンド ドロップを使用してアクセスできます。

アプリが終了すると、これらのファイル/ディレクトリへのアクセスは失われます。

ユーザーが選択したファイル/ディレクトリに永続的にアクセスするには、Security-Scoped Bookmarksを使用する必要があります。

于 2012-10-30T14:39:04.777 に答える