I. Resumen
Este artículo presenta los puntos de conocimiento relacionados con el almacenamiento de datos de la libreta de direcciones privada:
-
En la interfaz de inicio de sesión: recuerde el nombre de usuario y la contraseña e inicie sesión automáticamente
-
Agregar datos de contacto guardar y actualizar resultado guardar
<! - más ->
Dos representaciones
Realización de tres funciones
3.1 Interfaz de inicio de sesión
Guardar datos de inicio de sesión
// Guardar datos de inicio de sesión [UserDefaults setObject: _accountField.text forKey: AccountKey]; [UserDefaults setObject: _pwdField.text forKey: PwdKey]; [UserDefaults setBool: _rmbPwdS.isOn forKey: RmbPwdKey]; [UserDefaults setBoolinS: _isoLink AutoLoginKey]; // Sincronización: los datos en la memoria actual se sincronizan con el sandbox [UserDefaults synchronize];
Leer datos de la caja de arena
// 从 沙 盒里 读取 数据 _accountField.text = [UserDefaults objectForKey: AccountKey]; if (_rmbPwdS.on) { _pwdField.text = [UserDefaults objectForKey: PwdKey]; } _rmbPwdS.on = [UserDefaults boolForKey: RmbPwdKey]; _autoLoginS.on = [UserDefaults boolForKey: AutoLoginKey]; if (_autoLoginS.on) {[self loginBtn: self.loginBtn];}
3.2 Agregar y actualizar contactos
guardar datos
#define FilePath [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) [0] stringByAppendingPathComponent: @ "contact.data"] [NSKeyedArchiver archiveRootObject: self.contacts toFile: FilePath];
La clase que se va a guardar implementa NSCoding
- (tipo de instancia) initWithCoder: (NSCoder *) codificador { if (self = [super init]) { _name = [codificador decodeObjectForKey: NameKey]; _phone = [codificador decodeObjectForKey: PhoneKey]; } return self; } - (void) encodeWithCoder: (NSCoder *) codificador { [codificador encodeObject: _name forKey: NameKey]; [codificador encodeObject: _phone forKey: PhoneKey]; }
Leer datos de contacto
- (NSMutableArray *) contactos { if (_contacts == nil) { _contacts = [NSKeyedUnarchiver unarchiveObjectWithFile: FilePath]; if (_contacts == nil) { _contacts = [matriz NSMutableArray]; } } return _contacts; }
Actualizar datos de contacto
// Método de protocolo, actualizado con éxito un contact- (void) editViewController: (EditViewController *) edit didUpdateContact: (Contact *) contact { // Actualizar la tabla [self.tableView reloadData]; // Archivar [NSKeyedArchiver archiveRootObject: self. contactos toFile: FilePath]; }