NSUserDefaults类提供了一个与默认系统进行交互的编程接口, 他主要用来存储对象类型,可用来恢复与程序相关的偏好设置,配置数据等等。
同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作,
NSUserDefaults类提供了非常方便的方法来获取常用的类型,例如 floats,doubles,intergers,Booleans,URLs。所以一个NSUserDefaults的对象必须是属性表,这也就是说 我们可以存储NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary这些实例。如果你想存储其他类 型的对象,你要将其归档并创建一个NSData来实现存储。
从NSUserDefaults返回的值是不可改变的,即便是你在存储的时候使用的是可变的值。例如你使用mutable string做为“MyStringDefault”的值,当你做使用stringForKey:方法获取的值,这个值仍然是不可变的。
NSUserDefaults是单例,同时也是线程安全的例如 : 我们要记录登录用户的相关信息 such as:用户名,电话号,邮箱等等。。
首先 :初始化NSUserDefaults
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:userID forKey:@"userName"];
[userDefaults setObject:telephone forKey:@"telephone"];
“userName”和“telephone”为存储数据的关键词 即我们所说的 key值,这样我们就将用户名和电话号码存储起来到数据库中
当我们要使用这俩个key值的value时候,
同样 初始化 NSUserDefaults
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *userName = [userDefaults objectForKey:@"userName"];
NSString *telephone = [userDefaults objectForKey:@"telephone"];
这样 我们就取出我们之前存储的userName 和 telephone
直接可以使用 非常方便,明了 ,简洁
当然 你可能会问 NSUserDefaults将数据存储在什么地方?如何才能清除呢
其实它存储在应用程序内置的一个plist文件里,这个可以根据路径看到
比如说这个是你的程序沙盒位置
/UsersLibrary/Application Support/iPhoneSimulator/29788E40-AF47-45A0-8E92-3AC0F501B7F4/,(这个是应用程序对应在mac上的位置)
这个下面有/Library/Prefereces,里面有个plist文件,存储的就是你的userDefaults
想要删掉的话,用removeObjectForKey或者删掉沙盒,也就是你的应用程序然后重新安装。
至此,NSUserDefaults轻量级数据库存取 就已经全部结束!!!