Bekerja dengan Default Pengguna di Xamarin.iOS
Artikel ini membahas bekerja dengan NSUserDefault untuk menyimpan pengaturan default di Aplikasi atau Ekstensi Xamarin.iOS.
Kelas ini NSUserDefaults
menyediakan cara bagi Aplikasi dan Ekstensi iOS untuk berinteraksi secara terprogram dengan Sistem Default di seluruh sistem. Dengan menggunakan Sistem Default, pengguna dapat mengonfigurasi perilaku atau gaya aplikasi untuk memenuhi preferensi mereka (berdasarkan desain aplikasi). Misalnya, untuk menyajikan data dalam pengukuran Metrik vs Imperial atau pilih Tema UI tertentu.
Saat digunakan dengan Grup Aplikasi, NSUserDefaults
juga menyediakan cara untuk berkomunikasi antara aplikasi (atau Ekstensi) dalam grup tertentu.
Tentang Default Pengguna
Seperti yang dinyatakan di atas, Default Pengguna (NSUserDefaults
) dapat ditambahkan ke Aplikasi (atau Ekstensi) dan digunakan untuk menyediakan opsi yang dapat dikonfigurasi yang dapat dimodifikasi pengguna akhir untuk menyesuaikan tampilan atau operasi aplikasi saat runtime.
Saat aplikasi Anda pertama kali dijalankan, NSUserDefaults
membaca kunci dan nilai dari Database Default Pengguna aplikasi dan menyimpannya ke memori untuk menghindari membuka dan membaca database setiap kali nilai diperlukan.
Penting
Apple tidak lagi merekomendasikan agar pengembang memanggil Synchronize
metode untuk menyinkronkan cache dalam memori dengan database secara langsung. Sebaliknya, cache akan secara otomatis dipanggil pada interval berkala untuk menjaga cache dalam memori tetap sinkron dengan database default pengguna.
Kelas NSUserDefaults
berisi beberapa metode kenyamanan untuk membaca dan menulis nilai preferensi untuk jenis data umum seperti: string, bilangan bulat, float, boolean, dan URL. Jenis data lain dapat diarsipkan menggunakan NSData
, lalu dibaca dari atau ditulis ke Database Default Pengguna. Untuk informasi selengkapnya, lihat Preferensi Apple dan Panduan Pemrograman Pengaturan.
Mengakses Instans NSUserDefaults Bersama
Instans Default Pengguna Bersama menyediakan akses ke Default Pengguna untuk pengguna perangkat saat ini. Jika objek Default Bersama tidak ada, objek tersebut dibuat saat pertama kali diakses dan diinisialisasi dengan informasi berikut:
NSArgumentDomain
Terdiri dari default yang diurai dari aplikasi saat ini.- Domain Pengidentifikasi Bundel aplikasi.
NSGlobalDomain
Terdiri dari default yang dibagikan oleh semua aplikasi.- Domain terpisah untuk setiap bahasa pilihan pengguna.
NSRegistrationDomain
Dengan serangkaian default sementara yang dapat dimodifikasi oleh aplikasi untuk memastikan pencarian selalu berhasil.
Untuk mengakses Instans Default Pengguna Bersama, gunakan kode berikut:
// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
Mengakses Instans NSUserDefaults Grup Aplikasi
Seperti yang dinyatakan di atas, dengan menggunakan Grup Aplikasi, NSUserDefaults
dapat digunakan untuk berkomunikasi antara Aplikasi (atau Ekstensi) dalam grup tertentu. Pertama, Anda harus memastikan bahwa Grup Aplikasi dan ID Aplikasi yang diperlukan telah dikonfigurasi dengan benar di bagian Sertifikat, Pengidentifikasi & Profil di iOS Dev Center dan telah diinstal di lingkungan pengembangan.
Selanjutnya, proyek Aplikasi dan/atau Ekstensi Anda harus memiliki salah satu ID Aplikasi yang valid yang dibuat di atas, dan Entitlements.plist
file harus disertakan dalam App Bundle dengan Grup Aplikasi yang diaktifkan dan ditentukan.
Dengan semua ini di tempat, Default Pengguna Grup Aplikasi bersama dapat diakses menggunakan kode berikut:
// Get App Group User Defaults
var plist = new NSUserDefaults ("group.com.xamarin.todaysharing", NSUserDefaultsType.SuiteName);
Di mana group.com.xamarin.todaysharing
Grup Aplikasi dibuat di Sertifikat, Pengidentifikasi & Profil yang ingin Anda akses. Untuk informasi selengkapnya, silakan lihat dokumentasi Kemampuan Grup Aplikasi.
Membaca Nilai Default
Setelah mengakses Database Default Pengguna yang diinginkan, Anda dapat membaca nilai dari default menggunakan Pasangan Kunci/Nilai dan beberapa metode kenyamanan berdasarkan jenis data yang dibaca:
ArrayForKey
- Mengembalikan array untukNSObjects
nilai kunci yang diberikan.BoolForKey
- Mengembalikan nilai boolean untuk kunci yang diberikan.DataForKey
- MengembalikanNSData
objek untuk kunci yang diberikan.DictionaryForKey
- Mengembalikan untuk kunci yangNSDictionary
diberikan.DoubleForKey
- Mengembalikan nilai ganda untuk kunci yang diberikan.FloatForKey
- Mengembalikan nilai float untuk kunci yang diberikan.IntForKey
- Mengembalikan nilai bilangan bulat untuk kunci yang diberikan.StringArrayForKey
- Mengembalikan arrayString
objek dari nilai kunci yang diberikan.StringForKey
- Mengembalikan nilai string untuk kunci yang diberikan.URLForKey
- MengembalikanNSUrl
nilai untuk kunci yang diberikan.
Misalnya, kode berikut akan membaca nilai boolean dari Default Pengguna:
// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
...
// Get value
var useHeader = plist.BoolForKey("UseHeader");
Menulis Nilai Default
Sama seperti membaca nilai di atas, setelah Anda mengakses Database Default Pengguna yang diinginkan, Anda dapat menulis nilai ke default menggunakan Pasangan Kunci/Nilai dan beberapa metode kenyamanan berdasarkan jenis data yang ditulis:
SetBool
- Menulis nilai boolean yang diberikan ke kunci yang diberikan.SetDouble
- Menulis nilai ganda yang diberikan ke kunci yang diberikan.SetFloat
- Menulis nilai float yang diberikan ke kunci yang diberikan.SetString
- Menulis nilai string yang diberikan ke kunci yang diberikan.SetURL
- Menulis nilai URL (NSUrl
) yang diberikan ke kunci yang diberikan.
Misalnya, kode berikut akan menulis nilai boolean ke Default Pengguna:
// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
...
// Save value
plist.SetBool(useHeader, "UseHeader");
...
Penting
Saat Aplikasi Anda pertama kali dijalankan, NSUserDefaults
membaca kunci dan nilai dari Database Default Pengguna aplikasi dan menyimpannya ke memori untuk menghindari membuka dan membaca database setiap kali nilai diperlukan.
Ringkasan
Artikel ini telah membahas NSUserDefaults
kelas dan bagaimana hal itu dapat digunakan untuk menyediakan serangkaian opsi yang dapat digunakan pengguna akhir untuk mengonfigurasi Aplikasi Xamarin.iOS Anda. Selain itu, ini mencakup penggunaan Grup Aplikasi untuk berkomunikasi antara ekstensi dan Aplikasi Induknya atau antara aplikasi dalam grup.