ios NSUserDefaults存储数据(偏好设置)

1.NSUserDefaults用于存储数据量小的数据,主要是用户配置,但也可以支持存储一些小数据
包括:NSString, NSNumber, NSDate, NSArray, NSDictionary
2.数据存放于一个plist文件中。这个文件位于在 app同级目录的/Library/Preferences目录下

3.NSUserDefaults主要是 setObject 和 object ForKey,大数据使用其他的存储,如Sqlite3,CoreDate等;

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

1.偏好设置的plist文件存放地址

  NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"%@", path);

2.读存入NSString(NSNumber,NSDate)

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 写入数据
[defaults setObject:@"testString" forKey:@"test1"];
// 立即写入
[defaults synchronize]; // 读取数据
NSString *str = [defaults objectForKey:@"test1"];
NSLog(@"---%@",str);

3.读存入NSArray,NSDictionary

NSArray,NSDictionary为不可变类型,也是类似的。

但是,如果存入的是NSMutableArray,NSMutableDictionary,读出来的数组是不可变的类型为:NSCFArray。需要进行转变为NSMutableArray.

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"test1", @"test2", @"test3", nil];
[array addObject:@"test4"];
// 写入数据
[defaults setObject:array forKey:@"test2"];
// 立即写入
[defaults synchronize]; // 读取数据
// reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object' 这样直接等于的话mutableArray的类型为NSCFArray,不能继续往数组里面添加
// NSMutableArray *mutableArray = [defaults objectForKey:@"test2"];
NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:[defaults objectForKey:@"test2"]];
[mutableArray addObject:@"test5"];
NSLog(@"%@",mutableArray);

ios NSUserDefaults存储数据(偏好设置)的更多相关文章

  1. iOS开发UI篇—ios应用数据存储方式(偏好设置)

    iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用 ...

  2. ios应用数据存储方式(偏好设置)-转

    一.简单介绍 1.很多ios应用都支持偏好设置,比如保存用户名,密码,字体大小等设置,ios提供了一套标准的解决方案来为应用加入偏好设置功能. 2.每个应用都有个NSUserDefaults实例,通过 ...

  3. iOS:沙盒、偏好设置、归档、解归档

    一.沙盒和应用程序包 •iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒 •iOS常用目录: –Bundle –Documents –Library/Ca ...

  4. 数据存储之偏好设置NSUserDefaults

    NSUserDefaults做数据存储也是比较常用,适合轻量级的本地数据存储,读取也很方便. 一.支持的数据类型如下图(NSString.NSArray.NSDictionary.NSData.NSI ...

  5. IOS第13天(2,私人通讯录,plist存储,偏好设置,归档)

    ***************plist存储 // 当点点击保存的时候调用 //保存 - (IBAction)save:(id)sender { // 获取沙盒的根路径 // NSString *ho ...

  6. ios存储 plist 偏好设置 自定义对象存储

    1,plist Plist注意:不能存储自定义对象 Plist:数组和字典,  如何判断一个对象能不能使用Plist,就看下有没有writeToFile 获取应用的文件夹(应用沙盒) NSString ...

  7. iOS开发-本地存储(偏好设置,Plist,归档)

    1.   NSUserDefaults //TODO: 1.NSUserDefaults NSUserDefaults类除了可以存储数组.字典.NSdata外,还可以直接存储OC基本类型属性.但是不能 ...

  8. iPhone开发之使用NSUserDefaults存储数据

    NSUserDefaults是什么,有什么用处 对于应用来说,每个用户都有自己的独特偏好设置,而好的应用会让用户根据喜好选择合适的使用方式,把这些偏好记录在应用包的plist文件中,通过NSUserD ...

  9. iOS学习之应用偏好设置

    如今,即便是最简单的计算机程序也会包含一个偏好设置窗口,用户可以在其中设置应用专属的选项.在MAC OS X中,Preferences...菜单通常位于应用菜单中.选择该菜单项会弹出一个窗口,用户可以 ...

随机推荐

  1. ReactiveX 学习笔记(5)合并数据流

    Combining Observables 本文的主题为合并 Observable 的操作符. 这里的 Observable 实质上是可观察的数据流. RxJava操作符(四)Combining An ...

  2. 【363】python 相关小技巧

    1. 对列表进行乱序 通过 random.shuffle() 方法实现,直接对列表进行操作 >>> import random >>> a = list(range ...

  3. [Linux]Linux下动态安装PHP扩展的一般方法(图)

    ---------------------------------------------------------------------------------------------------- ...

  4. Delphi动态配置ODBC数据源--SQL Server版本

    (摘自)http://jxlearnew.blog.163.com/blog/static/549786592007102451431413/ 这里介绍一种用Delphi来实现动态注册的方法,希望对各 ...

  5. 1.Tomcat配置.md

    1.启动 解压缩安装包后,点击startup.bat,保持控制台窗口开启 浏览器中输入http://localhost:8080 后看到启动界面则表示启动成功 点击shutdown.bat则关闭Tom ...

  6. ArcGIS案例学习笔记3_1_ArcMap编辑练习

    ArcGIS案例学习笔记3_1_ArcMap编辑练习 计划时间:第三天上午 目的:ArcMap编辑练习 教程: pdf page67 数据: gis_ex10/ex07 方法: 1.新建shp文件 目 ...

  7. 关于在VS2008和VS2010中禁用及卸载Visual Assist X的方法研究——转载

    禁用和启用   此方法对于VS2008和VS2010 都适用. 在VS2008或VS2010菜单栏中选择“VassistX”选项卡,找到“Enable/Disable Visual Assist X” ...

  8. The iOS 7 Design Cheat Sheet

    http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/

  9. AnimCheckBox按钮点击动画效果《IT蓝豹》

    AnimCheckBox按钮点击动画效果 AnimCheckBox按钮点击动画效果,点击选中后勾选框选择效果,很不错的动画功能.项目来源:https://github.com/lguipeng/Ani ...

  10. 学习shell脚本之前的基础知识(一)(学习记录帖)

    记录命令历史:我们敲过的命令,linux会有记录,保存在家目录的.bash_history文件中.(备注:只有用户正常退出当前shell时,当前命令才会保存在.bash_history文件中) “  ...