如何只删除一个子项目的所有userdefaults数据?

How to delete all userdefaults data of only one subproject?

我的项目在主项目中有几个子项目。我只想删除一个子项目中的所有 userdefaults 数据。 我在 userdefaults 中搜索并找到了“套件”概念,但看起来该套件主要用于应用程序组。 由于我不需要在应用程序组之间共享数据,我不知道“套件”是否是最好的方式。 有没有其他好办法只删除一个子项目的userdefaults数据?

您可以使用枚举为您的子项目声明您的密钥,并通过 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()
    }
}