kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 Zizoo
Zizoo
Question

Bagaimana cara menghapus semua data UserDefaults? - Swift

Saya memiliki kode ini untuk menghapus semua data UserDefaults dari aplikasi:

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

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

Tetapi saya mendapatkan 10 dari baris cetak. Bukankah seharusnya 0?

30 2017-04-13T21:29:07+00:00 2
 rmaddy
rmaddy
Pertanyaan edit 13 April 2017 в 9:33
Pemrograman
ios
swift
nsuserdefaults
Solution / Answer
 Lefteris
Lefteris
13 April 2017 в 9:51
2017-04-13T21:51:29+00:00
Lebih
Sumber
Sunting
#33265177

Masalahnya adalah anda mencetak konten UserDefaults, tepat setelah membersihkannya, tetapi anda tidak menyinkronkannya secara manual.

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

Ini seharusnya bisa dilakukan.

Sekarang Anda biasanya tidak perlu memanggil sinkronisasi secara manual, karena sistem secara periodik menyinkronkan userDefaults secara otomatis, tetapi jika Anda perlu mendorong perubahan dengan segera, maka Anda perlu memaksa pembaruan melalui panggilan sinkronisasi.

Dokumentasi menyatakan hal ini

Karena metode ini secara otomatis dipanggil pada interval periodik, gunakan metode ini hanya jika Anda tidak dapat menunggu sinkronisasi otomatis (misalnya, jika aplikasi Anda akan keluar) atau jika Anda ingin memperbarui default pengguna ke apa yang ada di disk meskipun Anda belum membuat perubahan apa pun.

66
0
Anda punya pertanyaan? Tambahkan di situs dan dapatkan jawabannya secara instan
id.kzen.dev
Ryan Poolos
Ryan Poolos
13 April 2017 в 9:39
2017-04-13T21:39:45+00:00
Lebih
Sumber
Sunting
#33265163

Jawaban ini ditemukan di sini https://stackoverflow.com/a/6797133/563381 tetapi untuk berjaga-jaga di sini dalam bahasa Swift.

func resetDefaults() {
    let defaults = UserDefaults.standard
    let dictionary = defaults.dictionaryRepresentation()
    dictionary.keys.forEach { key in
        defaults.removeObject(forKey: key)
    }
}
Ryan Poolos
Ryan Poolos
Jawaban edit 8 Desember 2017 в 1:56
30
0
Anda punya pertanyaan? Tambahkan di situs dan dapatkan jawabannya secara instan
id.kzen.dev
Related communities 1
Apple Swift ID
Apple Swift ID
2 085 pengguna
Komunitas Pemrograman Apple Swift Indonesia. INFO LOKER : https://t.me/swiftidjobs IG : https://www.instagram.com/apple.swift.id/ FB : https://www.facebook.com/groups/swift.id/
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Andrei Kalinin
Terdaftar 2 minggu yang lalu
2
Koroleva Ego
Terdaftar 1 bulan yang lalu
3
Star Lenon
Terdaftar 1 bulan yang lalu
4
Данил Жевнеров
Terdaftar 1 bulan yang lalu
5
Анна Литвиненко
Terdaftar 2 bulan yang lalu
Anda punya pertanyaan? Tambahkan di situs dan dapatkan jawabannya secara instan
id.kzen.dev
ID
JA
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi