数据缓存——NSUserDefault的使用

本文详细介绍了iOS开发中NSUserDefault的使用,包括其用于存储应用程序偏好设置和配置数据的功能,线程安全的特性,以及如何通过synchronize方法同步内存缓存。还提到了可存储的数据类型如NSData、NSString等,并强调了存储其他类型对象时的归档过程。此外,文章列出了常用方法,并提供了查看Mac上存储路径的指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NSUserDefault的使用

Demo下载地址


NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等。

默认系统允许应用程序自定义它的行为去迎合用户的喜好。你可以在程序运行的时候从用户默认的数据库中读取程序的设置。

同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。可以通过调用synchronize方法来使内存中的缓存与用户默认系统进行同步。

NSUserDefaults是单例,同时也是线程安全的。

NSUserDefaults类提供了非常方便的方法来获取常用的类型,例如 floats,doubles,intergers,Booleans,URLs。所以一个NSUserDefaults的对象必须是属性表,这也就是说 我们可以存储NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary这些实例。

 

注意:

1)如果你想存储其他类型的对象,你要将其归档并创建一个NSData来实现存储。

2)从NSUserDefaults返回的值是不可改变的,即便是你在存储的时候使用的是可变的值。例如你使用mutable string做为“MyStringDefault”的值,当你做使用stringForKey:方法获取的值,这个值仍然是不可变的。

 

常用方法

创建实例:
NSUserDefaults *userDefault =[NSUserDefaults standardUserDefaults];
保存信息:
[userDefault setObject:@"YES"forKey:@"login"];
同步信息:
[userDefault synchronize];
查找信息:
[userDefaultobjectForKey:@"login"];
删除信息:
[userDefaultremoveObjectForKey:@"login"];
删除全部:
方法1 删除指定的从用户的默认持久域的内容
NSString *userDefaultApp = [[NSBundlemainBundle] bundleIdentifier];
 [userDefaultremovePersistentDomainForName:userDefaultApp];
 
方法2 删除设备上所有的NSUserDefaults的设置
NSDictionary *dicts = [userDefaultdictionaryRepresentation];
for (id key in dicts)
{
  [userDefault removeObjectForKey:key];
}
[userDefault synchronize];
获取全部:
NSDictionary *dicts = [userDefault dictionaryRepresentation];

 

 其他事项

 存储:

 Nsuserdefaults保存的文件应用程序内置的一个plist文件里。

 

MAC查看路径:

在Xcode5及之前,存放路径:/Users/username/Library/Application Support/iPhoneSimulator/模拟器版本/Applications/UDID/Library 的Preferences文件夹下,自己程序命名.plist。

在Xcode6及之后,路径为:/Users/username/Library/Developer/CoreSimulator/Devices/模拟器UDID/data/Library,Preferences文件夹下。



 

打印查看路径:

NSLog(@"%@",NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES)[0]);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值