Я использую NSSavePanel
в своем приложении. Все отлично работает на моей ОС X 10.7, но приложение отклонено Apple со следующим комментарием:Правильный флаг права для сохранения файла в том же месте дважды
При экспорте во второй раз ранее выбранное место сохранения не работает. Пользователь должен отменить выбор местоположения, а затем снова выбрать его, чтобы записать файл. Убедитесь, что у вас есть необходимые права.
Этот отзыв был выполнен на iMac, работающем под управлением ОС X 10.8.
Это мой сохранить код панели:
NSSavePanel *savePanel = [NSSavePanel savePanel];
[savePanel setAllowedFileTypes:[NSArray arrayWithObject:@"mov"]];
[savePanel setDirectoryURL:[NSURL URLWithString:@"/Documents"]];
[savePanel setNameFieldStringValue: videoName];
[savePanel beginSheetModalForWindow:window completionHandler:^(NSInteger result){
if (result == NSFileHandlingPanelOKButton) {
NSError *error = nil;
NSString *sourceFilePath = [NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath], videoName];
NSString *destFilePath = [[savePanel URL] path];
NSFileManager *fileManager = [[NSFileManager alloc] init];
if(![fileManager copyItemAtPath:sourceFilePath toPath:destFilePath error:&error])
NSLog(@"%@", error);
}
}];
В настоящее время я использую эти флаги:
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.assets.movies.read-write</key>
<true/>
<key>com.apple.security.files.downloads.read-write</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
</dict>
Что право флаг я должен использовать, чтобы решить эту проблему?
Таким образом, каждый раз, когда пользователь хочет «экспорт», они выбирают сохранить местоположение с помощью nssavepanel правильно? – mark
Да, Марк, они выбирают место сохранения через nssavepanel. – DioNNiS