Apakah ada cara untuk melihat apa yang telah disimpan NSUserDefaults
secara langsung? Saya ingin melihat apakah data saya disimpan dengan benar.
ios
objective-c
macos
nsuserdefaults
Ethan
sumber
sumber
Jawaban:
Anda dapat menemukan file pList untuk aplikasi Anda di simulator jika Anda masuk ke:
/ pengguna / nama pengguna Anda / Perpustakaan / Dukungan Aplikasi / iPhone Simulator / <Versi Sim> / Aplikasi
Direktori ini memiliki banyak direktori bernama GUID. Jika Anda mengerjakan beberapa aplikasi, akan ada beberapa aplikasi. Jadi, Anda perlu menemukan biner aplikasi Anda:
Kemudian pergi ke direktori Library / Preferences di direktori GUID. Begitu:
Anda harus menemukan file yang terlihat seperti:
Buka ini di editor pList dan ramban nilai yang ada untuk isi hati Anda.
sumber
NSUserDefaults
, maka fileNSUserDefaults
tersebut tidak bertahan pada file .plist melainkan dikelola dalam memori: stackoverflow.com/questions/6193597/…Anda dapat mencetak semua NSUserDefaults saat ini ke log:
Hanya kunci:
Kunci dan nilai:
sumber
Di Swift kita dapat menggunakan yang berikut: -
Swift 3.x & 4.x
Untuk mendapatkan semua kunci & nilai:
Untuk mengambil perwakilan kamus dari default pengguna:
Untuk mengambil kunci:
Untuk mengambil nilai:
Kita bisa menggunakan dump di sini juga, tetapi itu akan mengembalikan hierarki warisan lengkap dari setiap elemen dalam array nilai. Jika informasi lebih lanjut tentang objek diperlukan, maka gunakan dump, kalau tidak pergi dengan pernyataan cetak normal.
Swift 2.x
Untuk mengambil perwakilan kamus dari default pengguna:
Untuk mengambil kunci:
Untuk mengambil nilai:
sumber
Anda dapat memeriksa nilai untuk setiap kunci dalam array, dikembalikan oleh
sumber
Saya kadang-kadang menggunakan cuplikan berikut untuk mencetak lokasi file NSUserDefaults saya saat berjalan di simulator
Ini menghasilkan jalur ke folder preferensi
File NSUserDefaults Anda terletak di folder preferensi dan dinamai sesuai dengan awalan dan nama aplikasi Anda, mis
Saya berharap hal yang sama berlaku untuk perangkat yang sebenarnya.
sumber
Mudah, karena nama file plist adalah
<app-bundle-identifier>.plist
, Anda dapat menggunakanfind
perintah untuk menemukan jalurnya. Tetapi akan sangat lama jika Anda mencari seluruh komputer Anda, jadi Anda harus memilih ruang lingkup yang baik, seperti~/Library/Developer/CoreSimulator
untuk Xcode 6.contoh:
find ~/Library/Developer/CoreSimulator -type f -name com.awesome.app.plist
output akan menjadi seperti ini ...
/Users/hlung/Library/Developer/CoreSimulator/Devices/B61913F6-7D7C-4E45-AE2F-F45220A71823/data/Containers/Data/Application/E4CC51CF-11E5-4168-8A74-6BAE3B89998F/Library/Preferences/com.awesome.app.plist
Dan dari sana Anda bisa menggunakan
open
perintah. Atau jika Anda menggunakan iTerm2 , cukup klik perintah pada jalur untuk membukanya.sumber
Dalam Swift 4.0
karena dictionaryRepresentation of NSUserDefaults.standardUserDefaults () mengembalikan [String: AnyObject]
Kami melemparkannya ke dalam
NSDictionary
. Maka dengan mengelilinginya dalam tanda kurung '()' akan memungkinkan kami untuk memanggil .allKeys atau .allValues seperti yang Anda lakukan pada NSDictionary apa punsumber
Gunakan kode di bawah ini.
sumber
Untuk aplikasi OS X , alih-alih menemukan file plist default aplikasi, lebih mudah menggunakan
defaults
utilitas baris perintah.Contoh:
sumber
Untuk Xcode 7
NSUserDefaults standardDefault disimpan di sini:
/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Data/Application/{UUID}
NSUserDefaults untuk grup suite / aplikasi disimpan di sini:
/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Shared/AppGroup/{UUID}/Library/Preferences/{GROUP_NAME}.plist
Saya akan merekomendasikan menggunakan https://github.com/scinfu/NCSimulatorPlugin karena hari ini semuanya berada di belakang UUID dan sulit ditemukan. Ini memungkinkan akses mudah ke direktori aplikasi simulator Anda.
sumber
Saya membangun metode ini berdasarkan saran Morion untuk presentasi yang lebih baik. Gunakan dengan menelepon
[self logAllUserDefaults]
sumber
NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] debugDescription]);
(Hampir seperti dalam jawaban pilihan terbanyak di atas.)Cari aplikasi Mac yang disebut SimPholder2 . Itu tinggal di bilah menu, dan mencantumkan semua simulator yang Anda gunakan, dan kemudian menunjukkan masing-masing aplikasi Anda. Pilih satu dan Anda mendapatkan jendela Finder baru, sudah terbuka ke direktori aplikasi. Ini membuatnya sangat mudah untuk menemukan aplikasi Anda dan semua direktori itu. Ini adalah penghemat waktu yang sangat besar (dan saya siap menyumbang ke penulis).
sumber
Aplikasi Simulator
Script shell ini mencari nama aplikasi, mendapatkan bundel id , dan membuka folder yang berisi file Plist .
Versi skrip diperpanjang
Pemakaian:
iphone-app-folder "My App"
Aplikasi Mac
sumber
Dalam Swift 2.2
akan mencetak lokasi folder file plist NSUserDefaults di konsol debug Xcode. Salin string path. Buka Finder Anda, pilih Go to Folder in Go menu item, Tempelkan string path. Klik dua kali file plist. Anda akan melihat konten di editor Xcode Anda.
Hanya bekerja di Simulator
Terima kasih @Niels Castle
sumber
Saya menyimpan pintasan di desktop saya ke folder simulator tempat ia menyimpan aplikasi, yaitu:
Diurutkan berdasarkan tanggal terkini, lalu masuk ke folder aplikasi Perpustakaan / Preferensi dan lihat file di editor plist.
sumber
Cepat 3
sumber
Untuk aplikasi MacOS
Buka: / Pengguna /{User}/Library/Containers/com.{perusahaan Anda}. {Aplikasi Anda} / Data / Perpustakaan / Preferensi dan buka daftar aplikasi Anda dengan Xcode.
sumber
Ini adalah keseluruhan path tempat nilai kunci UserDefaults Anda akan berada dalam file plist. Ikuti dan temukan file .plist pengidentifikasi bundel aplikasi Anda.
Di sini "4176EED3-B9FC-4C77-A25E-ASD201B9FDFG2" adalah Device ID Anda
dan "56D7CE31-9A8B-4371-9B0F-9604E239423B0" adalah ID Aplikasi Anda
Saya biasanya mendapatkannya dengan menyortir folder berdasarkan Tanggal terakhir Dimodifikasi dalam Finder. Dan folder yang diedit terbaru adalah ID perangkat dan ID Aplikasi saya.
Nikmati!
sumber
Anda dapat NSLog setiap nilai yang Anda tetapkan, seperti:
sumber
Setelah membaca jawaban yang diterima pertanyaan ini, saya mengumpulkan skrip sederhana ini yang membuka file plist yang digunakan oleh simulator iOS untuk menyimpan
NSUserDefaults
preferensi, dan sementara mengasumsikan pengaturan tertentu (sangat cocok dengan saya), ini mungkin berfungsi sebagai titik awal untuk orang lain .Contoh penempatan:
sumber
Anda dapat menggunakan ini untuk mendapatkan path lengkap tentang preferensi pengguna, cache dan banyak data lainnya
print(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true))
sumber
Anda dapat mencetak jalur untuk direktori preferensi dari
application:didFinishLaunchingWithOptions:
callback di AppDelegate Anda:Kemudian Anda dapat melihat file plist secara langsung untuk melihat apa yang tersimpan di sana.
sumber