Nsdata неправильно записывается в файл

#objective-c

#objective-c

Вопрос:

У меня есть объект NSData, он содержит 16300 байт, и я записываю в файл. Запись завершена успешно. Но как только я снова захочу прочитать путь, он дает мне только 44 байта.

 //writing to path
[audioData writeToFile:recorderFilePath options:NSDataWritingAtomic error:amp;err];
    if (err) {
        NSLog(@"Error of writing to file %@",[err localizedDescription]);
    }
// reading from path
NSData *paddata =  [NSData dataWithContentsOfFile:filePath];
  

Любая помощь будет оценена.
Спасибо.

Комментарии:

1. Вероятно, он еще не очистил все данные. Попробуйте добавить задержку перед чтением.

2. Можете ли вы увидеть размер сохраненного файла, чтобы определить, является ли это проблемой записи или чтения?

3. Каковы значения recorderFilePath и filePath ?

4. значения @Mats одинаковы для обоих.

5. @ppaulojr Я не считываю данные сразу после операции записи. И если я добавлю задержку здесь, это может вызвать условия гонки.

Ответ №1:

Чуть ниже приведен код, используемый для записи вашего аудиофайла и чтения из path.

Записать аудиофайл в path

[Файловые данные записываются в файл: путь к аудиофайлу атомарно: ДА];

чтение из пути

NSURL *soundFileURL = [NSURL fileURLWithPath:путь к аудиофайлу];