Desarrollo de IOS: almacenamiento de datos de libreta de direcciones privada (58)

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];   
}

Supongo que te gusta

Origin blog.csdn.net/Calvin_zhou/article/details/108957388
Recomendado
Clasificación