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);
时间: 2024-12-28 21:12:41

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

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

iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置.比如,保存用户名.字体大小.是否自动登录 存储位置: 存储形式: 二.代码示例 1.storyboard 2.代码 1 // Created by 鑫 on 14-10-24. 2 // Copyright (c) 2014年 梁镋鑫.

ios应用数据存储方式(偏好设置)

ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置.比如,保存用户名.字体大小.是否自动登录 存储位置: 存储形式: 二.代码示例 1.storyboard 2.代码 8 9 #import "YYViewController.h" 10 //偏好设置 11 @interface YYViewCo

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

一.简单介绍 1.很多ios应用都支持偏好设置,比如保存用户名,密码,字体大小等设置,ios提供了一套标准的解决方案来为应用加入偏好设置功能. 2.每个应用都有个NSUserDefaults实例,通过它来存储偏好设置.比如,保存用户名,字体大小,是否自动登录. 3.存储位置  4.存储形式  二.代码示例 #import "ViewController.h" #define CURRENT_SCREEN_WIDTH [UIScreen mainScreen].bounds.size.w

数据存储之偏好设置

一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置.比如,保存用户名.字体大小.是否自动登录 存储位置: 存储形式: 二.代码示例 1.storyboard 2.代码 9 #import "YYViewController.h" 10 //偏好设置 11 @interface YYViewController () 12 /** 1

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

一.沙盒和应用程序包 •iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒 •iOS常用目录: –Bundle –Documents –Library/Caches –Library/Preference –tmp 显示mac隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏mac隐藏文件:defaults write com.apple.finder AppleSh

iOS -- plist数据存储与偏好设置数据存储

// 向plist文件中存储数据NSString *home = NSHomeDirectory();NSString *docPath = [home stringByAppendingPathComponent:@"Document"]; NSArray *data = @[@"jack", @10, @"ffdsf"];NSString *filePath = [docPath stringByAppendPathComponent:@&q

数据存储之偏好设置NSUserDefaults

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

iOS 数据持久化之使用NSUserDefaults存储数据

原文:http://blog.csdn.net/lxinl/article/details/11770675 OS下可以使用NSUserDefaults.sqlite.CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据.NSUserDefault的使用比较简单: [cpp] view plaincopy NSUserDefaults *mySettingData = [NSUserDefaults s

NSUserDefaults存储数据

1.用处:NSUserDefaults用来存储类似用户的配置.程序设置信息等这些的数据 iOS下可以使用NSUserDefault.NSKeyedArchiver.sqlite.CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据. NSUserDefault 基本上支持所有的原生数据类型NSString. NSNumber.NSDate. NSArray.NSDictionary.BOOL.NSInt