вы можете использовать перечисления, чтобы объявить ваши ключи для вашего подпроекта и согласовать его с помощью протокола 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()
}
}