コンテンツを Documents ディレクトリにコピーしようとしているアーカイブがあります。シミュレーターでは正常に動作しますが、デバイスでエラーが発生して中止されます。
- (BOOL)importData:(NSData *)zippedData {
// Read data into a dir Wrapper
NSData *unzippedData = [zippedData gzipInflate];
NSFileWrapper *dirWrapper = [[[NSFileWrapper alloc] initWithSerializedRepresentation:unzippedData] autorelease];
if (dirWrapper == nil) {
NSLog(@"Error creating dir wrapper from unzipped data");
return FALSE;
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSURL *dirUrl = [NSURL fileURLWithPath:documentsDirectory];
NSError *error;
BOOL success = [dirWrapper writeToURL:dirUrl options:NSFileWrapperWritingAtomic originalContentsURL:nil error:&error];
if (!success) {
NSLog(@"Error importing file: %@", error.localizedDescription);
return FALSE;
}
// Success!
return TRUE;
}
コンソールに次の出力が表示されます。
2013-01-19 22:40:23.865 My App[569:907] Foundation と呼ばれる mkdir("/var/mobile/Applications/1BF53E96-6261-4DEC-8700-60307D84587F/(A Document Being Saved By Saved My App)") 、0 を返さず、errno が 1 に設定されました。 2013-01-19 22:40:23.922 マイ アプリ [569:907] ファイルのインポート中にエラーが発生しました: 操作を完了できませんでした。(ココア エラー 513)