Xcode - Доступ к постоянным данным из симулятора (NSCoder) - PullRequest
0 голосов
/ 26 апреля 2018

Я храню постоянные данные в моем приложении, используя NSCoder, как показано ниже:

class UserNotification: NSObject, NSCoding {

    var message: String!

    init(message: String) {
        self.message = message
    }

    required convenience init(coder aDecoder: NSCoder) {
        let message = aDecoder.decodeObject(forKey: "message") as! String

        self.init(message: message)
    }

    func encode(with aCoder: NSCoder) {
        aCoder.encode(message, forKey: "message")
    }
}

Вот как они загружаются в приложение:

let defaults = UserDefaults.standard

if (defaults.object(forKey: "userNotifications") != nil) {
        let decoded = defaults.object(forKey: "userNotifications") as! Data
        let decodedUserNotifications = NSKeyedUnarchiver.unarchiveObject(with: decoded as Data) as! [UserNotification]
        userNotifications = decodedUserNotifications
}

Я также включил способ очистки всех сохраненных данных. Для очистки я реализовал:

let newListData = NSKeyedArchiver.archivedData(withRootObject: userNotifications)
let defaults = UserDefaults.standard
defaults.set(newListData, forKey: "userNotifications")
defaults.synchronize()

Все объекты уведомлений пользователей хранятся в глобально доступном массиве:

userNotifications = [UserNotification]()

Я хотел бы убедиться, что все постоянные данные удалены после того, как пользователь их очистил. Я просматривал папку моего симулятора (~ / Library / Developer / CoreSimulator / Devices), чтобы найти постоянные данные и посмотреть, удаляются ли они, но мне нигде не удалось найти их.

Кажется, что все работает при запуске приложения (сохранение данных, стирание и т. Д.), Но я хотел бы убедиться, что все данные будут удалены на устройстве правильно. Сохраняются некоторые эскизы, и поэтому я хочу убедиться, что они действительно стираются и не занимают ненужного места.

Итак, мой вопрос, где хранятся данные при использовании NSCoder? Я могу найти локально сохраненные изображения с помощью FileManager, но закодированные данные нигде не найдены.

...