Как прочитать файл JSON в swift 5 (iOS), сохраненный симулятором в Library / Developer /CoreSimulator / Devices/

#ios #json #ios-simulator #filepath #swift5

#iOS #json #ios-симулятор #путь к файлу #swift5

Вопрос:

Я сохранил файл JSON с именем abc.json в своем приложении для iOS. Он был сохранен по следующему пути:

Library/Developer/CoreSimulator/Devices/CB7CE5E3-1178-4A44-804D-6558A937E3CA/data/Containers/Data/Application/1CC01B6D-F5C4-4C20-B370-9E036785EB6C/Documents/abc.json

Я перезагрузил свое приложение, и путь к файлу изменился на:

Library/Developer/CoreSimulator/Devices/CB7CE5E3-1178-4A44-804D-6558A937E3CA/data/Containers/Data/Application/2544BD3C-C797-4269-9482-B6E7E0159BA3/Documents/abc.json

Каждый раз, когда я перезагружаю приложение в своем Xcode, путь меняется. У меня есть 2 вопроса.

  1. Почему путь продолжает меняться?
  2. Как мне прочитать файл (abc.json), сохраненный симулятором, если его путь продолжает меняться?

Я пытался найти ответы на это, но не наткнулся ни на что, что прояснило бы мое замешательство.

Ответ №1:

Каждый раз, когда вы устанавливаете приложение, оно получает новый UUID. Это нормально. Чаще всего вы получаете к нему доступ, просто распечатав путь во время запуска, но другим удобным механизмом является использование simctl:

 xcrun simctl get_app_container booted <bundle> data
 

«загруженный» вот удобный способ доступа к текущему запущенному симулятору, но вы также можете передать явный UUID для идентификации симулятора (CB7CE5E3-1178-4A44-804D-6558A937E3CA в вашем примере). Параметр «data» возвращает контейнер данных, который часто является тем, что вам нужно. По умолчанию используется контейнер приложения.