免费开源的iOS开发学习平台

偏好设置(NSUserDefaults):2-读写示例

在实际的开发过程中,偏好设置常用于保存一些配置信息,例如:登录用户名、密码、上次登录时间、登录次数等等。本示例对此操作进行简单介绍。本节示例介绍一下偏好设置的存储、读取等常用操作。

存储数据(新增/更新)

在偏好设置中存储数据,需要根据存储数据的对象类型调用不同的写入方法,同时还需要为每个数据提供一个标识键值。

  • 获取NSUserDefaults对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  • 保存数据
[defaults setObject:[NSDate date] forKey:@"LastLoginTime"];
[defaults setBool:NO forKey:@"IsFirstLogin"];
[defaults setValue:@"99iOS" forKey:@"UserName"];
  • 同步数据,保存到本地
[defaults synchronize];
  • 保存成功后,我们可以到沙盒中偏好设置所在的路径,查看偏好设置对应的目录以及文件内容。

读取数据

由于偏好设置中的每个存储内容在写入的时候都需要提供对应的标识键值,因此在读取操作时,我们就可以根据标识键值来读取其中存储的内容。

  • 获取NSUserDefaults对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  • 读取数据
NSDate *lastLoginTime = [defaults objectForKey:@"LastLoginTime"];
BOOL isFirstLogin = [defaults boolForKey:@"IsFirstLogin"];
NSString *userName = [defaults valueForKey:@"UserName"];
  • 打印数据
NSLog(@"%@--%d--%@", lastLoginTime, isFirstLogin, userName);

删除数据

当我们需要删除偏好设置中的内容时,也是根据其标识键值进行删除的。

  • 获取NSUserDefaults对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  • 根据键值名称,删除数据
[defaults removeObjectForKey:@"LastLoginTime"];

示例代码

https://github.com/99ios/13.3.2