NSUserDefaults删除整个plist文件

简介:

NSUserDefaults删除整个plist文件

 

我们知道NSUserDefaults可以保存某些信息在本地,例如登录的账号,密码等等,当我们使用NSUserDefaults时,它是将信息写入到本地的一个plist文件里,我们都知道 删除plist里的某一项内容直接用[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];这样就可以直接删除 plist中的某一个特定的项的内容了,

但是,如果要把整个plist文件删除,那应该怎么样呢???

其实也不难,我们要知道删除整个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文件就能 把整个文件删除了。











本文转自 卓行天下  51CTO博客,原文链接:http://blog.51cto.com/9951038/1616699,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
JavaScript 前端开发 API
第9期 一文读懂TS的(.d.ts)文件
第9期 一文读懂TS的(.d.ts)文件
132 0
|
JavaScript 前端开发 API
一文读懂TS的(.d.ts)文件
一文读懂TS的(.d.ts)文件
3983 0
|
29天前
|
JavaScript 前端开发 编译器
还不会ts?一文带你打开ts的大门
该文章详细介绍了TypeScript的基础知识,包括类型系统、类、接口、泛型等核心概念,并通过具体示例展示了如何使用TypeScript进行项目初始化和模块化开发,帮助读者快速掌握TypeScript的基本用法。
还不会ts?一文带你打开ts的大门
|
5月前
|
资源调度 JavaScript 前端开发
介绍一下ts
介绍一下ts
105 1
|
5月前
ts文件解密
ts文件解密
241 0
|
JavaScript 前端开发
|
安全
ts是什么
VSCode提示 例如:定义者指定了一个方法: export function foo(name: string): number { return name.length }
229 0
|
人工智能 自然语言处理 JavaScript
为什么我们需要 TS ?
文中不少观点的想法系个人见解,有一定的个人局限性,欢迎交流
814 0
为什么我们需要 TS ?
|
JavaScript 前端开发 Java
还不会ts?一文带你打开ts的大门(一)
下面的文章中将讲解我对 TS 入门的一些归纳总结。一起来了解一下吧!
还不会ts?一文带你打开ts的大门(一)