다음은 내 문제의 맥락입니다. 먼저 시작되는 스레드가 있습니다.iPhone 응용 프로그램에서 NSString을 인수로 전달하는 문제
-(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....
위의 내용은 모두 콘솔에 올바르게 인쇄됩니다. NSLogs의 없음 모든에서 을 인쇄하는 것이
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....
이상한 것은이 : 그런 다음 호출되는 방법이있다. 아무것도. 나다. 지퍼. 그리고 나서 app은 wav 메소드를 읽는 위치로 전달하려고 할 때 충돌합니다 (아마 문자열에 문제가 있기 때문일 수도 있습니다).
NSTemporaryDirectory에서 NSBundle로 전환했을 때이 모든 일이 발생하기 시작했으나 그 일과 관련이 있는지 확실하지 않습니다. 어떤 충고?
은 내가 Joetjah의 제안을 촬영 대신 사용하기 시작했습니다
[self runAllAudioRoutines:local_recordFilePath_NSString];
-(void)runAllAudioRoutines:(NSString*) file
을 지금은이 얻을 :
콘솔에 호출 스택 및 오류가 표시되는 것을 확인하는 것이 유용 할 것입니다. – Sabobin
@Eric Brotto : 충돌 로그도보고 싶습니다. 줄을'[self runAllAdioRoutines : local_recordFilePath_NSString];로 바꾸고'- (void) runAllAudioRoutines : (NSString *) file {'doesn? 그냥 확인^^ – Joetjah
나는 콘솔에서 어떤 오류나 전화 스택을 얻고 있지 않다. 다른 곳이 아니라면 (?) –