[英]How to clear NSUserDefaults Data?
當我從我的應用程序中選擇語言選擇列表中的語言時,它會顯示我之前選擇的語言。 如果我從我的模擬器堆棧中清除應用程序或從xcode清除它然后運行項目,之后它就可以了,如果我想再次更改語言,那么我遇到了同樣的問題。 我的代碼如下:
- (IBAction)English:(id)sender {
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
[userDefault setObject:[NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
[userDefault synchronize];
ChooseItemVC *civc = (ChooseItemVC*)[self.storyboard instantiateViewControllerWithIdentifier:@"ChooseItemVC"];
[self.navigationController pushViewController:civc animated:YES];
}
另一種語言選擇代碼:
- (IBAction)Arabic:(id)sender {
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
[userDefault setObject:[NSArray arrayWithObjects:@"ar", nil] forKey:@"AppleLanguages"];
[userDefault synchronize];
ChooseItemVC *civc = (ChooseItemVC*)[self.storyboard instantiateViewControllerWithIdentifier:@"ChooseItemVC"];
[self.navigationController pushViewController:civc animated:YES];
}
刪除所有用戶默認值的最佳方法如下:Swift代碼:
UserDefaults.standard.removePersistentDomain(forName: Bundle.main.bundleIdentifier!)
UserDefaults.standard.synchronize()
目標C.
NSString *strIdentifier = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] strIdentifier];
[[NSUserDefaults standardUserDefaults] synchronize];
從NSUserDefaults
刪除數據
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
刪除使用此
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
[[NSUserDefaults standardUserDefaults] synchronize];
要從NSUserDefaults中刪除數據,請嘗試以下操作:
NSString *AppDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:AppDomain];
使用以下代碼刪除用戶默認值中的所有現有數據,我發布swift代碼,將其轉換為objective-c。
if let bundleID = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundleID)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.