는 방법을 제거하는 모든 UserDefaults data? -Swift

이 코드를 모두 제거UserDefaults데이터에서 응용 프로그램:

let domain = Bundle.main.bundleIdentifier!
UserDefaults.standard.removePersistentDomain(forName: domain)

print(Array(UserDefaults.standard.dictionaryRepresentation().keys).count)

하지만 난10에서 인쇄 라인입니다. 안't it be0?

질문에 대한 의견 (2)
해결책

문제입니다 당신은 당신을 인쇄 UserDefaults 내용,권리를 삭제 한 후 그들은,하지만 당신은하지 않을 수동으로 동기화하는 그들.

let domain = Bundle.main.bundleIdentifier!
UserDefaults.standard.removePersistentDomain(forName: domain)
UserDefaults.standard.synchronize()
print(Array(UserDefaults.standard.dictionaryRepresentation().keys).count)

이해야 합니다.

지금 당신은 당신 don't 정상적으로 호출할 필요가동기화으로,수동으로 시스템 정기적으로 동기화하 userDefaults 자동으로,그러나 당신이 필요한 경우 밀어 변경 사항은 즉시,그런 다음 필요하신 업데이트를 강제로`를 통해 동기화합니다.

설국 이

기 때문에 이 방법은 자동으로 호출되는 주기적으로,이 방법을 사용할 수 없는 경우에만 기다려에 대한 자동적인 동기화(예를 들어,응용 프로그램을 종료)또는 업데이트하고 싶은 경우에는 사용자의 기본값은 무엇이 디스크에 있는 경우에도 변경된 내용이 없다.

해설 (10)

이 대답을 여기에서 찾을 https://stackoverflow.com/a/6797133/563381 하지만 그냥 넣 그것은 여기에서 신속합니다.

func resetDefaults() {
    let defaults = UserDefaults.standard
    let dictionary = defaults.dictionaryRepresentation()
    dictionary.keys.forEach { key in
        defaults.removeObject(forKey: key)
    }
}
해설 (6)