Open
Description
We have a few tickets where types using UserDefaults can’t be Sendable due to a UserDefaults property.
We could implement a general Sendable
UserDefaults wrapper which we use in these places.
A few examples:
- https://mozilla-hub.atlassian.net/browse/FXIOS-12597
- https://mozilla-hub.atlassian.net/browse/FXIOS-12589
Hint from Claude.ai: https://claude.ai/share/108766af-ab13-4d3d-b0e7-7b6983ad46d4
actor UserDefaultsManager {
private let userDefaults = UserDefaults.standard
func getString(forKey key: String) -> String? {
userDefaults.string(forKey: key)
}
func setString(_ value: String, forKey key: String) {
userDefaults.set(value, forKey: key)
}
func getBool(forKey key: String) -> Bool {
userDefaults.bool(forKey: key)
}
func setBool(_ value: Bool, forKey key: String) {
userDefaults.set(value, forKey: key)
}
}
// Usage
let settingsManager = UserDefaultsManager()
await settingsManager.setString("value", forKey: "key")
let value = await settingsManager.getString(forKey: "key")
┆Issue is synchronized with this Jira Task
Metadata
Metadata
Assignees
Labels
No labels