Bagikan melalui


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 untuk NSObjects nilai kunci yang diberikan.
  • BoolForKey - Mengembalikan nilai boolean untuk kunci yang diberikan.
  • DataForKey - Mengembalikan NSData objek untuk kunci yang diberikan.
  • DictionaryForKey - Mengembalikan untuk kunci yang NSDictionary 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 array String objek dari nilai kunci yang diberikan.
  • StringForKey - Mengembalikan nilai string untuk kunci yang diberikan.
  • URLForKey - Mengembalikan NSUrl 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.