一、简单介绍

很多iOS应用都支持偏好设置,比如保存用户名、密码、字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能

每个应用都有个NSUserDefaults实例,通过它来存取偏好设置。比如,保存用户名、字体大小、是否自动登录

存储位置:

存储形式:

二、代码示例

1.storyboard

2.代码

 1 //2 //  YYViewController.m3 //  01-偏好设置4 //5 //  Created by apple on 14-6-7.6 //  Copyright (c) 2014年 itcase. All rights reserved.7 //8 9 #import "YYViewController.h"
10 //偏好设置
11 @interface YYViewController ()
12 /**
13  *保存数据
14  */
15 - (IBAction)saveData:(id)sender;
16 /**
17  *  读取数据
18  */
19 - (IBAction)readData:(id)sender;
20
21 @end
22
23 @implementation YYViewController
24
25 - (IBAction)saveData:(id)sender {
26     //1.获取NSUserDefaults对象
27     NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
28
29     //2保存数据(如果设置数据之后没有同步, 会在将来某一时间点自动将数据保存到Preferences文件夹下面)
30     [defaults setObject:@"yangyong" forKey:@"name"];
31     [defaults setInteger:23 forKey:@"age"];
32     [defaults setDouble:1.73f forKey:@"height"];
33     [defaults setObject:@"man" forKey:@"gender"];
34
35     //3.强制让数据立刻保存
36     [defaults synchronize];
37 }
38
39 - (IBAction)readData:(id)sender {
40     //1.获取NSUserDefaults对象
41     NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
42     //读取保存的数据
43     NSString *name=[defaults objectForKey:@"name"];
44     NSString *gender=[defaults objectForKey:@"gender"];
45     NSInteger age=[defaults integerForKey:@"age"];
46     double height=[defaults doubleForKey:@"height"];
47     //打印数据
48     NSLog(@"name=%@,gender=%@,age=%d,height=%.1f",name,gender,age,height);
49 }
50 @end

3.点击保存数据,读取数据按钮打印如下

三、补充说明

1.保存数据

    //1.获取NSUserDefaults对象NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];//2保存数据[defaults setObject:@"yangyong" forKey:@"name"];[defaults setInteger:23 forKey:@"age"];[defaults setDouble:1.73f forKey:@"height"];[defaults setObject:@"man" forKey:@"gender"];//3.强制让数据立刻保存[defaults synchronize];

2.读取数据

   //1.获取NSUserDefaults对象NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];//2.读取保存的数据NSString *name=[defaults objectForKey:@"name"];NSString *gender=[defaults objectForKey:@"gender"];NSInteger age=[defaults integerForKey:@"age"];double height=[defaults doubleForKey:@"height"];

3.重要说明

(1)偏好设置是专门用来保存应用程序的配置信息的, 一般情况不要在偏好设置中保存其他数据。如果利用系统的偏好设置来存储数据, 默认就是存储在Preferences文件夹下面的,偏好设置会将所有的数据都保存到同一个文件中。

(2)使用偏好设置对数据进行保存之后, 它保存到系统的时间是不确定的,会在将来某一时间点自动将数据保存到Preferences文件夹下面,如果需要即刻将数据存储,可以使用[defaults synchronize];

(3)注意点:所有的信息都写在一个文件中,对比简单的plist可以保存和读取基本的数据类型。

(4)步骤:获取NSuserDefaults,保存(读取)数据

转载于:https://www.cnblogs.com/LifeTechnologySupporter/p/5016719.html

iOS-数据持久化-偏好设置相关推荐

  1. 【iOS数据持久化】Plist使用

    iOS数据持久化Plist使用 iOS 端数据持久化就是把数据保存在本地,常用于基本信息储存,应用配置,应用支持数据源,网络请求缓存等.主要有如下几种方式: 方式 介绍 特点 Plist文件 属性列表 ...

  2. 【iOS数据持久化】偏好设置(UserDefaults)

    官网文档:NSUserDufaultClass Reference 关于偏好设置:AboutPreferences and Settings UserDefualts是一种便利的,通过key-valu ...

  3. iOS数据持久化方案

    技术由来 数据持久化是iOS开发中必不可少的一项技能.因为开发中我们多会涉及到用户信息存储.文件存储.应用内容缓存中的一个或者几个场景. 数据持久化的几种方式 NSUserDefaults plist ...

  4. 【iOS数据持久化】数据库(SQLite.swift)和FMDB

    数据持久化之SQLite数据库(SQLite.swift使用) 一.     简介 SQLite是一款轻型的嵌入式数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就足够了.它的处理速 ...

  5. iOS之应用偏好设置

    为什么80%的码农都做不了架构师?>>>    如今,即便是最简单的计算机程序也会包含一个偏好设置窗口,用户可以在其中设置应用专属的选项.在MAC OS X中,Preferences ...

  6. iOS 数据持久化 NSUserDefault

    每一个应用都有一个 NSUserDefaults 实例,向 NSUserDefaults 类发送 standardUserDefaults 消息可以得到该实例. NSUserDefaults 实例类似 ...

  7. iOS数据持久化--归档

    一.简介 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同一个文件夹下面,且主要用于存储应用的设置信息 归档:因为 ...

  8. iOS 数据持久化 -- Core Data (2)

    2019独角兽企业重金招聘Python工程师标准>>> 1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里, ...

  9. iOS - 数据持久化之 FMDB 的使用

    前言 上一篇文章「iOS - 使用 SQLite 数据库实现数据持久化」,介绍了如何使用 sqlite3 操作 SQLite 数据库实现增删改查.但是在代码编写的过程中,我们发现 sqlite3 需要 ...

最新文章

  1. Mysql之主从复制及主主复制
  2. 共享内存 传一个类指针_共享内存介绍:Shared Memory
  3. jdk1.8新特性(五)——Stream
  4. miui怎么用第三方图标包_空气能热水器怎么用?控制面板的图标详解来了
  5. intellij工程文件名都是红色+右键没有run选项
  6. mybatis--MapperProxy事务
  7. firebird 3.0 开发者指南_11月19日召开 2020 vivo开发者大会报名正式开启
  8. OPENCV-6 学习笔记
  9. Linus通过了Linux中避免master/slave等术语的提案
  10. python 编程(关于twisted)
  11. java数组有跨类建立对象_50个性能优化的细节:Java高级开发必会,来学习下吧...
  12. Linux学习笔记(PATH,cp,mv,文档查看cat/more/less/head/tail)
  13. 测试类报错:空指针异常
  14. 【渝粤教育】国家开放大学2018年春季 0471-22T畜牧学 参考试题
  15. Kindeditor在线HTML富文本编辑器使用入门
  16. ccy测试影响因子版270ms
  17. cad相对坐标快捷键_CAD常用的快捷键
  18. feign.RetryableException: xxx executing POST
  19. 在chrome的网址上搜索总是跳转到百度首页
  20. 【数学】微分(Differential)的定义,微分与导数的区别

热门文章

  1. 学习 lodash 源码整体架构,打造属于自己的函数式编程类库
  2. 同一页面中引入多个JS库产生的冲突解决方案(转)
  3. 程序员技术进阶手册(一)
  4. NFS服务的配置过程
  5. spring 注解简单使用
  6. 高性能网站建设的最佳实践(二)
  7. mysql-5.5.31主从复制
  8. MySql优化 (2009-08-28 系统架构师大会) 演讲ppt
  9. PHP IE中下载附件问题
  10. 4412 字符类设备的设备号