NSUserDefaults刪除整個plist檔案

2021-09-20 16:43:18 字數 1427 閱讀 9400

我們知道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])

這樣自己通過 nsuserdefaults 寫入到本地的plist檔案就能 把整個檔案刪除了。

NSUserDefaults儲存顏色

inte ce nsuserdefaults color void setcolor nscolor thecolor forkey nsstring key nscolor colorforkey nsstring key end implementation nsuserdefaults col...

NSUserDefaults儲存資料

1.用處 nsuserdefaults用來儲存類似使用者的配置 程式設定資訊等這些的資料 ios下可以使用nsuserdefault nskeyedarchiver sqlite coredata幾種常用的方式來儲存資料,其中nsuserdefaults用來儲存類似使用者的配置等這些的資料,後兩者使...

NSUserDefaults 用來儲存使用者設定資訊

nsuserdefaults 可以用來儲存使用者設定資訊,下次啟動程式的時候可以直接讀取,比儲存在檔案和資料庫中要方便很多。nsstring const int hall filter speed inthallfilterspeed nsstring const int hall filter s...