2012-09-02 5 views
0

저는 Objective C를 배우고 있으며이 책의 예제를 따르고 있습니다. 그러나 일부 예에서는이 오류가 계속 발생합니다! 계단을 정확히 따라갔습니다. 제발 도와주세요! 나는 이미 iOS 시뮬레이터를 기본 설정으로 복원하려고했지만 여전히 운이 없다.오류 스레드 1 : signal SIGBRT

소리를 녹음하여 재생할 수있는 앱입니다. 여기에 코드 ...

- (IBAction)recordAudio:(id)sender { 
    if ([self.recordButton.titleLabel.text isEqualToString:@"Record Audio"]){ 
     [self.audioRecorder record]; 
     [self.recordButton setTitle:@"Stop Recording" 
          forState:UIControlStateNormal]; 
    } else { 
     [self.audioRecorder stop]; 
     [self.recordButton setTitle:@"Record Audio" 
          forState:UIControlStateNormal]; 

     // Load the new sound in the audioplayer for playback 
     NSURL *soundFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() 
          stringsByAppendingPaths:@"sound.caf"]]; 

     self.audioPlayer = [[AVAudioPlayer alloc] 
          initWithContentsOfURL:soundFileURL error:nil]; 
    } 
} 
+2

무슨 일이 일어나는지 자세히 설명해주십시오. 앱을 시작할 때 충돌이 발생합니까? 버튼을 누르면 녹음이 시작됩니까? 녹음을 중지하려면 버튼을 탭하면됩니까? 다른 시간에? – Jim

+0

오류가 발생하면 시뮬레이터는 콘솔에 정보를 출력하고 디버거를 가져 오면 예외 스택을 표시합니다. 오류가 발생한 위치를 알려줍니다. 그 정보를 디버깅하는 것은 아마 아주 쉬울 것입니다. 이것이 없다면, 디버깅은 추측 게임 일뿐입니다. –

답변

1

내가 코드의 일부를 달렸다는, 그리고이 오류 메시지였다 설명서를 말한다

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** 
-[__NSCFString stringsByAppendingPaths:]: paths argument is not an array' 

으로 stringsByAppendingPaths 별도로 추가하여 만든있는 NSArray는 NSString의 객체를 반환 NSArray의 각 NSString은 수신자 경로로 연결됩니다. @ "sound.caf"는 예외를 발생시키는 NSArray가 아니라 NSString입니다. 다음

변경 :

NSURL *soundFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() 
         stringsByAppendingPaths:@"sound.caf"]]; 

사람 :

NSURL *soundFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() 
         stringByAppendingPathComponent:@"sound.caf"]]; 

하고 작동합니다.

관련 문제