Как получить доступ к папке с файлами UserDefaults в моем приложении ios - PullRequest
0 голосов
/ 02 сентября 2018

Я хотел бы знать, как получить доступ к каталогу документов моего приложения ios. Я пробовал следующее на xcode:

окно > Устройства и симуляторы > [Выбрать мое устройство] > [выбрать приложение по имени] > Показать контейнер .

Контейнер возвращается пустым. Я знаю, что у меня хранятся файлы, потому что мое приложение автоматически регистрирует меня через код в делегате приложения:

let userId = UserDefaults.standard.string(forKey: "userId")
guard let id = userId else { 
   // <GO TO LOGIN PAGE return true> 
}
// <GO TO HOME PAGE>

Я пытаюсь проверить, существуют ли следующие файлы, поскольку я сохранил изображение на следующий URL:

file:///var/mobile/Containers/Data/Application/6CEE9832-CE7B-4C31-9A62-F9F62D382C49/Documents/tempImage_wb.jpg

1 Ответ

0 голосов
/ 02 сентября 2018

Ваши UserDefaults данные словаря сохраняются в виде plist-файла с именем вашего приложения bundleIdentifier в каталоге Preferences внутри вашего приложения Library каталог:

let fileName = Bundle.main.bundleIdentifier!
let library = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!
let preferences = library.appendingPathComponent("Preferences")
let userDefaultsPlistURL = preferences.appendingPathComponent(fileName).appendingPathExtension("plist")
print("Library directory:", userDefaultsPlistURL.path)
print("Preferences directory:", userDefaultsPlistURL.path)
print("UserDefaults plist file:", userDefaultsPlistURL.path)
if FileManager.default.fileExists(atPath: userDefaultsPlistURL.path) {
    print("file found")
}

Если вам нужно проверить содержимое ваших Документов или найти этот файл в вашем компьютерном симуляторе, все, что вам нужно сделать, это открыть ваш Mac Finder и использовать пункт меню «Файл» Перейти> Перейти к папке… и скопировать и вставить ваш Путь к папке настроек приложения, который там печатается в консоли.

let documents = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let imageURL = documents.appendingPathComponent("tempImage_wb.jpg")
print("Documents directory:", imageURL.path)

enter image description here

...