Я делаю низкоуровневую обработку звука на iOS. В результате части моего приложения написаны на c ++.
Там я создаю и записываю аудио файлы. Файлы создаются с использованием ExtAudioFileCreateWithURL и написано для использования ExtAudioFileWriteAsync. Файлы закрыты с помощью ExtAudioFileDispose.
Иногда файлы должны быть удалены.
Как удалить файлы, созданные с ExtAudioFileCreateWithURL в с ++?
Поскольку файлы открываются с CFURLRef функция CFURLDestroyResource кажется, что способ сделать это, но эта функция устарела, и мне неясно, что заменит эту функцию.
В конце концов мне удалось решить эту проблему, написав вспомогательную функцию в файле Objective-C и вызвав эту функцию из кода C ++.
bool removeItemAtURL(CFURLRef url) {
NSFileManager *fileManager = [NSFileManager defaultManager];
return [fileManager removeItemAtURL: (__bridge NSURL *)url error: NULL];
}
Хотя это работает, я не уверен, если это сохранить для использования объекта NSFilemanger в потоке аудио рендеринга критичных ко времени. Если это так, то лучше всего разрешить удаление файлов в другом потоке.
Других решений пока нет …