내 Mac 응용 프로그램에서 AVAudioRecorder를 사용하고 있습니다.AVAudioRecorder가 유지되지 않습니다.
audioRecorder = [[[AVAudioRecorder alloc] initWithURL:soundFileURL settings:recorderSettings error:&error] retain];
...
[audioRecorder prepareToRecord];
...
[audioRecorder record];
내가 파일이 작성되는 것을 볼 수 있지만, 그것은 단지 4킬로바이트이 있습니다 내하는 .m 파일에서 나는 다음과 같이 객체 init을 ALLOC 더 아래
@interface RecordViewController()
{
AVAudioRecorder *audioRecorder;
...
}
@end
을 선언합니다. 나는 오류를 얻지 않지만, 내가 시험 할 때 [audioRecorder isRecording]
이 [audioRecorder가 더 이상 녹음하지 않는다는 것을 알 수 있습니다. ARC를 사용하지 않고 dealloc 메서드가 호출되지 않았더라도 개체가 릴리스되었다고 가정합니다.
나는 AVAudioPlayer와 비슷한 문제가 있었지만 alloc init에 추가 된 retain]
이 추가되었습니다.
내가 뭘 잘못하고 있니?
감사
UPDATE 1 : I 심지어 (모두 동일한 방법으로) 다음을 수행하도록 시도
:
[audioRecorder record];
NSLog(@"recording is ... %d", [audioRecorder isRecording]);
그 결과가 0 이다 ?? ?
self
을 사용해야합니까? 또는 audioRecorder
을 지연 설치 하시겠습니까?
업데이트 2 : 내가 프로젝트를 다시는 - TEST를 불러 내 기존 프로젝트에서 소스 코드를 복사. 이제 작동합니까?!?! 그림을 이동. 소스 코드는 같은 줄에 대한 줄입니다. 이 문제는 Xcode와 관련하여 알려진 문제입니까?
보유 횟수를 확인하기 위해 프로그램에서 좀비를 실행 했습니까? 'audioRecorder'가 할당 해제되면'isRecording'을 호출하면 잘못된 액세스 오류가 발생하는 것처럼 보입니다. – Dustin
인스 트루먼 트에서 실행하면 NSZombie가 생성되지 않습니다. 나는 isRecording을 호출 할 때 오류 또는 잘못된 액세스 호출을받지 않습니다. – Joseph