删除NSUserDefault保存的所有数据
2017-01-21 17:32
239 查看
我们要知道删除整个plist文件实际上就是把plist文件中的所有item删除就行了,也就是说,如果plist文件里只有一项内容,
NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:"张三" forKey:@"name"];
[userDefaults synchronize]; //这行代码一定要加,虽然有时候不加这一行代码也能保存成功,但是如果程序运行占用比较大的内存的时候不加这行代码,可能会造成无法写入plist文件中,我试验过,真的是这样的
这样,我们就往plist文件中写入了一个name的item。
接下来,我们这么写:
NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];
[userDefaults removeObjectForKey:@"name"];
[userDefaults synchronize];
这样你会发现,plist文件消失了,但是如果我们写入的内容不仅仅是一项那要怎么删除所有的呢?
其实原理和只有一个item时候是一样的,我们删掉plist文件也就是相当于把plist文件里的所有item依次删除,对,就这么简单。
下面看一下代码:
我们先要取到plist文件里的所有的Key 否则 是不能用 removeObjectForKey:key 这个方法来删除的,那么怎样获得plist文件中素有item的key呢,dictionary 有一个方法 [dictionary allKeys];返回值是一个数组,这样我们能拿到dictionary中所有的 key,
我们知道我们写入的plist文件中的项目是以一个字典的形式保存的,所以,
代码如下:
NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];
NSDictionary *dictionary = [userDefaults dictionaryRepresentation];
for(NSString* key in [dictionary allKeys]){
[userDefaults removeObjectForKey:key];
[userDefaults synchronize];
}
这样自己通过 NSUserDefaults 写入到本地的plist文件就能 把整个文件删除了。
NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:"张三" forKey:@"name"];
[userDefaults synchronize]; //这行代码一定要加,虽然有时候不加这一行代码也能保存成功,但是如果程序运行占用比较大的内存的时候不加这行代码,可能会造成无法写入plist文件中,我试验过,真的是这样的
这样,我们就往plist文件中写入了一个name的item。
接下来,我们这么写:
NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];
[userDefaults removeObjectForKey:@"name"];
[userDefaults synchronize];
这样你会发现,plist文件消失了,但是如果我们写入的内容不仅仅是一项那要怎么删除所有的呢?
其实原理和只有一个item时候是一样的,我们删掉plist文件也就是相当于把plist文件里的所有item依次删除,对,就这么简单。
下面看一下代码:
我们先要取到plist文件里的所有的Key 否则 是不能用 removeObjectForKey:key 这个方法来删除的,那么怎样获得plist文件中素有item的key呢,dictionary 有一个方法 [dictionary allKeys];返回值是一个数组,这样我们能拿到dictionary中所有的 key,
我们知道我们写入的plist文件中的项目是以一个字典的形式保存的,所以,
代码如下:
NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];
NSDictionary *dictionary = [userDefaults dictionaryRepresentation];
for(NSString* key in [dictionary allKeys]){
[userDefaults removeObjectForKey:key];
[userDefaults synchronize];
}
这样自己通过 NSUserDefaults 写入到本地的plist文件就能 把整个文件删除了。
相关文章推荐
- 安卓学习笔记---如何保存数据到SharePreference里面,获取所有sp文件以及删除文件
- 保存数据库中其他对象不变,删除数据库中所有数据的实现方法
- 保存中其他对象不变,删除数据库中所有数据的实现方法
- 保存数据库中其他对象不变,删除数据库中所有数据的实现方法
- MySQL删除某个database的所有数据表 -好东西保存一下
- Oracle快速删除用户下所有表数据
- 删除数据库里的所有表
- solr删除指定id文档,删除查询到是所有索引数据,删除所有数据
- SQL Server的所有数据删除后,主键恢复成以1开始计数问题总结
- sqlserver中多行所有数据重复,无法更新或删除问题
- 数据库表初始化,删除所有数据后主键ID从1开始
- Entity Framework 4中删除所有数据行的几种方法【转载】
- Oracle对数据的导出和导入,建立用户,删除用户以及其下的所有表
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- Oracle中如何删除某个用户下的所有数据呢
- World Wide Web Publishing 服务尝试删除 IIS 所有的 SSL 配置数据失败的几种方法
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- es5.x批量删除某个Type下的所有数据
- Oracle中快速删除某个用户下的所有表数据 禁用所有外键
- 删除数据库中的所有数据