[英]nsuserdefault has key-values set how to delete it?
我已經嘗試在應用程序啟動時刪除所有鍵值對,並在我檢查鍵時再次刪除這些鍵,並將它們保存在NSUserDefault中。 我存儲了這些首選項。
NSArray *keys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];
NSLog(@"all keys %@", keys);
keys (
NSLanguages,
AppleITunesStoreItemKinds,
AppleLocale,
AppleLanguages,
NSInterfaceStyle
)
當我將新的動態值存儲到NSUserDefaults時,我想選擇除這些首選項以外的所有鍵。
請幫我解決這個問題。
提前致謝
不要做你想做的事。 不要篡改Apple添加的任何鍵。 保留自己的一組鍵(最好在名稱上帶有前綴),然后僅編輯它們。
通常,除非您的應用有特定要求,否則您不應該刪除密鑰。 您應該做的是在應用啟動時為每個鍵設置默認值:
[[NSUserDefaults standardUserDefaults] registerDefaults:@{... : ...}];
這些默認設置在應用程序運行時有效,但不會保存。 如果使用任何set...:forKey:
方法設置任何內容並進行synchronize
則它們將覆蓋默認值並保存。
嘗試這個
- (NSDictionary *) dictionaryRepresentation
。 在標准用戶默認值上使用此方法,您可以獲得用戶默認值中所有鍵的列表。 然后,您可以使用它清除用戶默認設置:
NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [defs dictionaryRepresentation];
for (id key in dict) {
[defs removeObjectForKey:key];
}
[defs synchronize];
removeObjectForKey-應該可以刪除首選項。
您可以通過調用此操作來刪除與應用程序關聯的NSUserDefaults
中的所有內容。
// remove entire user defaults
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
[[NSUserDefaults standardUserDefaults] synchronize]; // not sure if needed, but never hurts
這樣可以使您將信息保存到用戶默認設置中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.