ipad で sdcard リーダーを使用して sdCard からファイルをインポートしようとしています。カードから mts ファイルをインポートするときに、それらを mov 形式に変換し、アプリケーションのドキュメント ディレクトリに保存します。以下の関数を呼び出して日付を取得しないと、ファイルが完全に変換されます。この関数を呼び出して、インポート中にビデオ ファイルの作成日を取得すると。クラッシュし、次のスタック トレースが表示されます....
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'couldn't fork: errno 35'
*** Call stack at first throw:
(
0 CoreFoundation 0x32fba64f __exceptionPreprocess + 114
1 libobjc.A.dylib 0x35992c5d objc_exception_throw + 24
2 CoreFoundation 0x32fba491 +[NSException raise:format:arguments:] + 68
3 CoreFoundation 0x32fba4cb +[NSException raise:format:] + 34
4 Foundation 0x3582be8f -[NSConcreteTask launchWithDictionary:] + 2138
5 Foundation 0x3582af57 -[NSConcreteTask launch] + 22
6 IRVideoEditor 0x0002f917 +[IRVideoManager getCreatedDate:] + 358
7 IRVideoEditor 0x0002f65d +[IRVideoManager duplicateExists:] + 240
8 IRVideoEditor 0x0002d6c9 -[IRVideoEncoder wrapVideos] + 752
9 IRVideoEditor 0x00016d27 -[ImportVideoViewController importVideo] + 170
10 Foundation 0x357b0389 -[NSThread main] + 44
11 Foundation 0x358225cd __NSThread__main__ + 972
12 libsystem_c.dylib 0x36539311 _pthread_start + 248
13 libsystem_c.dylib 0x3653abbc start_wqthread + 0
)
terminate called after throwing an instance of 'NSException'
以下はコードです。nstaskを使用して日付を取得するために使用しています
NSPipe *pipe = [NSPipe パイプ];
task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/sh"];
NSArray *arguments = [NSArray arrayWithObjects:@"-c", [NSString stringWithFormat:@"stat -c %%y %@", filePath], nil]; // iPad stat
[task setArguments: arguments];
[task setStandardOutput:pipe];
[task setStandardError:[NSPipe pipe]];
// [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(taskExited:) name:NSTaskDidTerminateNotification object:task]; [タスク起動]; //[タスクwaitUntilExit];
NSString * date = [[[NSString alloc] initWithData:[[pipe fileHandleForReading] availableData] encoding:NSASCIIStringEncoding] autorelease];
return date;