equivalente a las preferencias compartidas en ios
sharedpreferences (2)
Estoy portando una aplicación de Android a iOS, una cosa que utilicé fueron las preferencias compartidas en Android para guardar cada vez que se completaba un nivel.
De esta forma, cuando el usuario regrese a la aplicación, puede ver que está en el nivel 3 o lo que sea.
¿Hay un mecanismo similar en iOS? ¿o tengo que escribir manualmente en un archivo específico de la aplicación?
De ser así, ¿cómo puedo escribir en archivos que solo mi aplicación puede ver?
Aquí hay una actualización para Swift 3
Leyendo
let preferences = UserDefaults.standard
let currentLevelKey = "currentLevel"
if preferences.object(forKey: currentLevelKey) == nil {
// Doesn''t exist
} else {
let currentLevel = preferences.integer(forKey: currentLevelKey)
}
Escritura
let preferences = UserDefaults.standard
let currentLevel = ...
let currentLevelKey = "currentLevel"
preferences.set(currentLevel, forKey: currentLevelKey)
preferences.synchronize()
Use NSUserDefaults : - tenga en cuenta que esto es para pequeños bits de datos, como el nivel actual como usted mencionó. No abuse de esto y úselo como una base de datos grande, porque se carga en la memoria cada vez que abre su aplicación, ya sea que necesite algo de ella o no (otras partes de su aplicación también lo usarán).
C objetivo:
Leyendo:
NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
NSString *currentLevelKey = @"currentlevel";
if ([preferences objectForKey:currentLevelKey] == nil)
{
// Doesn''t exist.
}
else
{
// Get current level
const NSInteger currentLevel = [preferences integerForKey:currentLevelKey];
}
Escritura:
NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
NSString *currentLevelKey = @"currentlevel";
const NSInteger currentLevel = ...;
[preferences setInteger:currentLevel forKey:currentLevelKey];
// Save to disk
const BOOL didSave = [preferences synchronize];
if (!didSave)
{
// Couldn''t save (I''ve never seen this happen in real world testing)
}
.
Rápido:
Leyendo:
let preferences = NSUserDefaults.standardUserDefaults()
let currentLevelKey = "currentLevel"
if preferences.objectForKey(currentLevelKey) == nil {
// Doesn''t exist
} else {
let currentLevel = preferences.integerForKey(currentLevelKey)
}
Escritura:
let preferences = NSUserDefaults.standardUserDefaults()
let currentLevelKey = "currentLevel"
let currentLevel = ...
preferences.setInteger(currentLevel, forKey: currentLevelKey)
// Save to disk
let didSave = preferences.synchronize()
if !didSave {
// Couldn''t save (I''ve never seen this happen in real world testing)
}