NSUserDefaults
来源:互联网 发布:人人网数据库 编辑:程序博客网 时间:2024/05/29 07:56
NSUserDefaults 用来存储一些轻量化的数据,最常用的就是保存用户名,密码等注册页面的编写时使用.
NSUserDefaults存储时是按键值对,即字典的形式存储的,因此KVC和其配合使用就比较多.
NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary,BOOL 并且是不可变的对象的存储,即使你存入一个mutable string,虽然写入userdefaults时是一个可变的字符串,但是在调用读取到这个字符串的时候,它仍是不可以改变的.
//UserDefaults的创建类似于一种单例模式,通常的创建通过类方法调用创建:
NSUserDefaults *user = [NSUserDefaultsstandardUserDefaults];
在头文件中可以查到一些常用的使用方法:
- (nullableid)objectForKey:(NSString *)defaultName;
- (void)setObject:(nullableid)value forKey:(NSString *)defaultName;
- (void)removeObjectForKey:(NSString *)defaultName;
我以一个简单的例子来解释一下userdefaults的简单使用:
在一个页面上添加两个button,一个textfiled控件.
现在textField中输入一串字符,将字符保存下来然后点击第一个 button时实现userdefaults的写入:
-(void)buttonAction:(UIButton *)sender{
先将textField对象引入,将其text写入userdefaults:
UITextField *afiled = (UITextField *)[self.windowviewWithTag:1];
NSUserDefaults的类方法创建:
NSUserDefaults *user = [NSUserDefaultsstandardUserDefaults];
通过键值对方式写入:
[usersetObject:afiled.textforKey:@"password"];
}
接下来在试图控制器中调用NSUserDefaults:
//NSUserDefaults类似于单例的创建,这里调出的userDefaults和button中的是一个对象:
NSUserDefaults *use = [NSUserDefaultsstandardUserDefaults ];
//将值赋textFiled.text :
field.text = [useobjectForKey:@"password"];
关闭应用程序,重新启动,就会在textField.text中显示刚才输入的字符串.
userdefaults的本地文件存储的路径可以通过打印HomeDirectory来获得:
NSLog(@"%@",NSHomeDirectory());
通过的打印的路径下在/Library/Prefereces可以看到存储的plist文件,这个就是刚才创建的userDefaults.
如果想取消userDefaults内所存储的内容可以通过直接修改plist文件中的数据,或者使用
removeObjectForKey: 方法来删除.
删除对应条目的具体实现如下:
在上面已经显示了textfField.text字符串的工程下继续添加一个button,其对应方法的实现如下:
-(void)button1Action:(UIButton *)sender{
NSUserDefaults *use = [NSUserDefaultsstandardUserDefaults ];
[use removeObjectForKey:@"password"];
}
点击这个button然后重新运行工程就会发现之前所输入的字符串无法显示了,同时可以到对应的plist文件中去查看就会发现之前添加的键值对已经被删除.- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- NSUserDefaults
- Hadoop在线水平增加删除datanode
- java二十二节-输入输出总结
- linux C内存泄露检测实现及内存泄露检测的一般方法
- Java多线程之volatile变量
- 【BZOJ2157】旅游,树链剖分练习
- NSUserDefaults
- 产品面试指南
- redis windows 官方下载
- coderforce Educational Codeforces Round 10 C. Foe Pairs(贪心)
- myeclipse 启动时 server Could not create the view: An unexpected exception was thrown.
- linux文件系统简介
- LeetCode笔记:104.Maximum Depth of Binary Tree
- tomcat 404错误
- Android 第七天重置版_BroadCastReceiver