随笔 - 91,  文章 - 0,  评论 - 4,  阅读 - 13万

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);
复制代码

 

posted on   xiao孛  阅读(564)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示