Сохранение файла с переменной типа данных «Данные» в Swift - PullRequest
0 голосов
/ 28 апреля 2020

Я новичок в программировании и пытаюсь написать функцию в Swift, чтобы загрузить JSON и проанализировать ее. Однако JSON очень сложен, и у меня есть дневной лимит на количество запросов данных с сервера.

Есть ли способ загрузить данные и сохранить их в файл как «данные», так что Я могу запустить все тесты с этими данными в файле, и мне не нужно каждый раз получать их с сервера? Как только я буду готов, я смогу снова начать получать данные с сервера.

По сути, я могу инициализировать переменную данных содержимым файла, чтобы использовать его в своих тестах.

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2020
  1. Определите, где вы хотите сохранить его и как его назвать. Например, для файлов, которые можно восстановить из сети, мы использовали бы cachesDirectory:

    let folder = try! FileManager.default
        .url(for: .cachesDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
        .appendingPathComponent("downloads")
    

    Или вы можете использовать applicationSupportDirectory (если повторное получение нецелесообразно ) или .documentsDirectory (если вы хотите потенциально предоставить файл конечному пользователю). Но идея та же самая.

  2. Создайте эту папку, если вы еще этого не сделали:

    try? FileManager.default.createDirectory(at: folder, withIntermediateDirectories: true)
    
  3. Создайте URL для файла в этой папке:

    let fileURL = folder.appendingPathComponent("sample.json")
    
  4. Сохранить это Data в этот файлURL:

    do {
        try data.write(to: fileURL)
    } catch {
        print(error)
    }
    
...