Примечание. Этот ответ также был обновлен для Swift.
Как насчет того, чтобы он был в одной строке?
Расширение ответа @Christopher Rogers - принято.
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]];
и да, иногда вам может понадобиться synchronize
,
[[NSUserDefaults standardUserDefaults] synchronize];
Я создал метод для этого,
- (void) clearDefaults {
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Swift
С swift это еще проще.
extension UserDefaults {
class func clean() {
guard let aValidIdentifier = Bundle.main.bundleIdentifier else { return false }
self.standard.removePersistentDomain(forName: aValidIdentifier)
self.standard.synchronize()
}
}
И использование :
UserDefaults.clean()