これが私の問題のコンテキストです。まず、開始されるスレッドがあります。
-(void)run_thread: (NSObject* )file_path_NSObject
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *local_recordFilePath_NSString = (NSString *)file_path_NSObject;
NSLog(@"run thread : path %@ ", local_recordFilePath_NSString);
printf("Running Thread...\n");
runAllAudioRoutines(local_recordFilePath_NSString);
// more code....
上記のすべてがコンソールに正しく出力されます。次に、呼び出されるメソッドがあります。
void runAllAudioRoutines(NSString *file)
{
NSLog(@"running All Audio Routines method...\n");
NSString *truncatedFilePath = [file stringByReplacingOccurrencesOfString:@"LoopExtended.wav"
withString:@"recordedFile.wav"];
NSLog(@"FILE for !!!! --> %@",truncatedFilePath);
const char *location = [truncatedFilePath UTF8String];
const char *write_location = [file UTF8String];
int *vocal_data = read_wav(location, &size_vocal);
// more code....
奇妙なことは、NSLog がまったく出力されないことです。何もない。なだ。ジップ。そして、場所を read wav メソッドに渡そうとすると、アプリがクラッシュします (文字列に何か問題があるためと思われます)。
これはすべて、NSTemporaryDirectory の使用から NSBundle の使用に切り替えたときに発生し始めましたが、それが関係しているかどうかはわかりません。何かアドバイス?
私はJoetjahの提案を受けて、代わりに使い始めました:
[self runAllAudioRoutines:local_recordFilePath_NSString];
-(void)runAllAudioRoutines:(NSString*) file
そして今、私はこれを取得します:
Joetjah からの 2 回目の提案による 2 回目の実行