iOS: сбросить все выходные файлы - PullRequest
0 голосов
/ 13 мая 2018

Существует ли метод iOS для очистки всех открытых выходных файлов - чтобы при возврате вызова все ожидающие буферизованные данные записывались в постоянное хранилище? Я имею в виду это в общих чертах - где у меня нет доступа к определенным файловым дескрипторам. Я пробовал sync() из Swift (вызов POSIX), но это, похоже, не гарантирует, что на самом деле данные попадут в постоянное хранилище, прежде чем они возвращаются (см. http://pubs.opengroup.org/onlinepubs/009696899/functions/sync.html).

1 Ответ

0 голосов
/ 13 мая 2018

Не уверен, что это решит проблему в целом, но это решает мою проблему.Вот что я делаю:

// Write to file (in my case, this is a log file where I don't have access to the file handle). 
// I'm using logging to a file with SwiftyBeaver. https://github.com/SwiftyBeaver/SwiftyBeaver

DispatchQueue.main.async {
    // Read from the file-- it has the flushed contents. I'm doing:

    do {
        let fileContents = try String(contentsOfFile: path)
    } catch (let error) {
    }
}

Похоже, что файлы сбрасываются в конце цикла событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...