A Better UserDefaults with storing policy: override, discard
// import module
import SafeModeUserDefault
// Save item if not exist
let storingResult = UserDefaults.safe.setValue("123456", forKey: "selected_number", forceOverride: {
return false
})
// return StoringResult.success
// Don't override if there is a value exist
let storingResult = UserDefaults.safe.setValue("123456", forKey: "selected_number", forceOverride: {
return false
})
// return StoringResult.discarded
let role = Role.admin
// Force override set to true due a condition
let storingResult = UserDefaults.safe.setValue("123456", forKey: "selected_number", forceOverride: {
return role == .admin
})
// return StoringResult.overrided