Я читаю / пишу файлы и папки в многопоточном приложении iOS. Я хочу, чтобы эти операции были поточно-ориентированными.
В документации NSFileManager говорится, что «вы должны создать уникальный экземпляр объекта файлового менеджера, назначить свой делегат этому объекту и использовать этот файловый менеджер для запуска ваших операций. «
Используются такие типы функций ( моя классификация ):
Операции« Запись »:
- NSData writeToFile: параметры: NSDataWritingAtomi c
- NSFileManager createDirectoryAtPath
- NSFileManager createFileAtPath
- NSFileManager removeItemAtPath * 10 * 10
1022 *1022* операции :
- NSFileManager fileExistsAtPath
- NSFileManager subpathsAtPath
Я выбираю один из таких вариантов для обеспечения безопасности потока:
Создайте два NSFileManager: один для операций «Запись», другой для операций «Чтение». Я называю только atomi c write, поэтому NSFileManager должен сам защищать целостность данных.
Добавить мьютекс, который позволит одновременное чтение / чтение, но не одновременное чтение / запись или запись / запись.
Не могли бы вы посоветовать, какой вариант является более правильным / адекватным?