NSUserDefaults

我們知道NSUserDefaults可以保存某些信息在本地,例如登錄的賬號(hào),密碼等等,當(dāng)我們使用NSUserDefaults時(shí),它是將信息寫入到本地的一個(gè)plist文件里,我們都知道 刪除plist里的某一項(xiàng)內(nèi)容直接用[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];這樣就可以直接刪除 plist中的某一個(gè)特定的項(xiàng)的內(nèi)容了,

但是,如果要把整個(gè)plist文件刪除,那應(yīng)該怎么樣呢???

其實(shí)也不難,我們要知道刪除整個(gè)plist文件實(shí)際上就是把plist文件中的所有item刪除就行了,也就是說,如果plist文件里只有一項(xiàng)內(nèi)容,

NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];

[userDefaults setObject:"張三" forKey:@"name"];

[userDefaults synchronize];? //這行代碼一定要加,雖然有時(shí)候不加這一行代碼也能保存成功,但是如果程序運(yùn)行占用比較大的內(nèi)存的時(shí)候不加這行代碼,可能會(huì)造成無法寫入plist文件中,我試驗(yàn)過,真的是這樣的

這樣,我們就往plist文件中寫入了一個(gè)name的item。

接下來,我們這么寫:

NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];

[userDefaults removeObjectForKey:@"name"];

[userDefaults synchronize];

這樣你會(huì)發(fā)現(xiàn),plist文件消失了,但是如果我們寫入的內(nèi)容不僅僅是一項(xiàng)那要怎么刪除所有的呢?

其實(shí)原理和只有一個(gè)item時(shí)候是一樣的,我們刪掉plist文件也就是相當(dāng)于把plist文件里的所有item依次刪除,對(duì),就這么簡單。

下面看一下代碼:

我們先要取到plist文件里的所有的Key 否則 是不能用 removeObjectForKey:key 這個(gè)方法來刪除的,那么怎樣獲得plist文件中素有item的key呢,dictionary 有一個(gè)方法 [dictionary allKeys];返回值是一個(gè)數(shù)組,這樣我們能拿到dictionary中所有的 key,

我們知道我們寫入的plist文件中的項(xiàng)目是以一個(gè)字典的形式保存的,所以,

代碼如下:

NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];

NSDictionary *dictionary = [userDefaults dictionaryRepresentation];

for(NSString* key in [dictionary allKeys]){

[userDefaults removeObjectForKey:key];

[userDefaults synchronize];

}

這樣自己通過 NSUserDefaults 寫入到本地的plist文件就能 把整個(gè)文件刪除了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容