0

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;
4

0 に答える 0