У меня была точно такая же проблема. Оказывается, я столкнулся с неправильно сгенерированным оператором пути. AVAudioRecorder инициализировался нормально - и без инцидентов - но iOS просто не позволила бы мне писать в него. Зачем? Проверьте это:
/* The following code will fail - why? It fails because it is trying to write some path that is NOT accessible by
this app.
NSString *recordedAudioPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
objectAtIndex:0]
stringByAppendingString:@"recorded.caf"];
*/
// Correction:
NSString *recordedAudioPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
objectAtIndex:0];
recordedAudioPath = [recordedAudioPath stringByAppendingPathComponent:@"recorded.caf"];
NSURL *recordURL = [NSURL fileURLWithPath:recordedAudioPath];
Теперь это имеет смысл. Спасибо, что направил меня в правильном направлении.