Как удалить все пользовательские данные по умолчанию только одного подпроекта? - PullRequest
0 голосов
/ 07 февраля 2019

Мой проект имеет несколько подпроектов внутри основного проекта.Я хотел бы удалить все данные userdefaults только в одном подпроекте.Я искал и нашел концепцию 'suite' в userdefaults, но похоже, что этот пакет в основном используется для групп приложений.Поскольку мне не нужно обмениваться данными между группами приложений, я не знаю, является ли «комплект» лучшим способом или нет.Есть ли еще какой-нибудь хороший способ удалить данные о пользовательских ошибках только одного подпроекта?

  • В моем подпроекте есть 20 ~ 30 пользовательских данных по умолчанию.Поэтому я думаю, что это неудобно, если удалять эти данные по одному.

1 Ответ

0 голосов
/ 07 февраля 2019

вы можете использовать перечисления, чтобы объявить ваши ключи для вашего подпроекта и согласовать его с помощью протокола caseiterable, а в цикле for вы можете удалить их.Я добавил пример ниже

var unqKey = "some unique ID" //EDIT

enum SubProjectKeys  : String,CaseIterable{

    case key1
    case key2
    case key3
    case key4

    var uniqueKey : String { //EDIT

            return  unqKey + self.rawValue
        }



}


func removeKeysForSubProject() {

    let userDefaultsObj = UserDefaults()
    for key in SubProjectKeys.allCases {

        userDefaultsObj.removeObject(forKey:  key.uniqueKey) //EDIT
        userDefaultsObj.synchronize()
    }
}
...