Xamarin. iOS içindeki Kullanıcı varsayılanlarıyla çalışma

Bu makalede, varsayılan ayarları Xamarin. iOS uygulamasında veya uzantısında kaydetmek için NSUserDefault ile çalışma ele alınmaktadır.

NSUserDefaultsSınıfı, IOS uygulamaları ve uzantılarının, sistem genelinde varsayılanlar sistemiyle programlı bir şekilde etkileşimde bulunmak için bir yol sağlar. Kullanıcı, varsayılanlar sistemini kullanarak, tercihlerini (uygulamanın tasarımına göre) karşılayacak şekilde uygulamanın davranışını veya stilini yapılandırabilir. Örneğin, ölçüm veya belirli bir kullanıcı arabirimi teması ile verileri bir veya daha fazla ölçümler halinde sunma.

Uygulama gruplarıyla birlikte kullanıldığında, NSUserDefaults belirli bir grup içinde uygulamalar (veya Uzantılar) arasında iletişim kurmak için bir yol sağlar.

Kullanıcı Varsayılanları hakkında

Yukarıda belirtildiği gibi, Kullanıcı varsayılan ( NSUserDefaults ) bir uygulamaya (veya uzantıya) eklenebilir ve son kullanıcının çalışma zamanında uygulamanın görünümünü veya işlemini ayarlamak için değiştirebilmesine olanak tanıyan yapılandırılabilir seçenekler sağlamak için kullanılır.

Uygulamanız ilk yürütüldüğünde, NSUserDefaults uygulamanın Kullanıcı Varsayılanları veritabanından anahtar ve değerleri okur ve bir değer gerektiğinde veritabanını açıp okumayı önlemek için bunları belleğe kaydeder.

Önemli

Apple artık geliştiricinin Synchronize bellek içi önbelleği doğrudan veritabanıyla eşitleme yöntemini çağırmasını önermez. Bunun yerine, bellek içi önbelleğin bir kullanıcının varsayılan veritabanıyla eşitlenmesini sağlamak için düzenli aralıklarla otomatik olarak çağrılır.

NSUserDefaultsSınıfı: String, Integer, float, Boolean ve URL 'ler gibi ortak veri türleri için tercih değerlerini okumak ve yazmak üzere çeşitli kolay yöntemler içerir. Diğer veri türleri kullanılarak arşivlenebilir NSData , ardından Kullanıcı Varsayılanları veritabanından okuyabilir veya yazılabilir. daha fazla bilgi için lütfen Apple 'ın tercihleri ve Ayarlar programlama kılavuzunabakın.

Paylaşılan NSUserDefaults örneğine erişme

Paylaşılan Kullanıcı Varsayılanları örneği, cihazın geçerli kullanıcısı için Kullanıcı varsayılanlarına erişim sağlar. Paylaşılan varsayılanlar nesnesi yoksa, ilk kez erişildiğinde oluşturulur ve aşağıdaki bilgilerle başlatılır:

  • NSArgumentDomainGeçerli uygulamadan ayrıştırılmış varsayılandan oluşan bir.
  • Uygulamanın paket kimliği etki alanı.
  • NSGlobalDomainTüm uygulamalar tarafından paylaşılan varsayılanlardan oluşan bir.
  • Kullanıcının tercih ettiği dillerin her biri için ayrı bir etki alanı.
  • NSRegistrationDomainAramaların her zaman başarılı olduğundan emin olmak için uygulama tarafından değiştirilebilen geçici varsayılanlar kümesi ile bir.

Paylaşılan Kullanıcı Varsayılanları örneğine erişmek için aşağıdaki kodu kullanın:

// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;

Bir uygulama grubu NSUserDefaults örneğine erişme

Yukarıda belirtildiği gibi, uygulama grupları kullanılarak, NSUserDefaults belirli bir grup Içinde uygulamalar (veya Uzantılar) arasında iletişim kurmak için kullanılabilir. ilk olarak, uygulama grubunun ve gerekli uygulama kimliklerinin, iOS Geliştirme Merkezi 'teki sertifikalar, tanımlayıcı profilleri bölümünde doğru şekilde yapılandırıldığından ve geliştirme ortamına yüklendiğinden emin olmanız gerekir.

Ardından, uygulamanız ve/veya uzantı projeleriniz, yukarıda oluşturulan geçerli uygulama kimliklerinden birine sahip olmalıdır ve dosya, uygulama Entitlements.plist grupları etkinleştirilmiş ve belirtilen uygulama paketine dahil olmalıdır.

Bu tümünün yerinde, paylaşılan uygulama grubu Kullanıcı varsayılanlarına aşağıdaki kod kullanılarak erişilebilir:

// Get App Group User Defaults
var plist = new NSUserDefaults ("group.com.xamarin.todaysharing", NSUserDefaultsType.SuiteName);

Burada, group.com.xamarin.todaysharing sertifikalarla oluşturulan uygulama grubu, erişmek Istediğiniz group.com.xamarin.todaysharing . Daha fazla bilgi için lütfen uygulama grubu özellikleri belgelerine bakın.

Varsayılan değerler okunuyor

İstenen kullanıcı varsayılan veritabanına erişduktan sonra, anahtar/değer çiftlerini ve okunan veri türüne göre birkaç kullanışlı yöntemi kullanarak varsayılandan değerleri okuyabilirsiniz:

  • ArrayForKey - NSObjects Verilen anahtar değeri için dizisini döndürür.
  • BoolForKey -Verilen anahtar için bir Boole değeri döndürür.
  • DataForKey - NSData Verilen anahtar için bir nesne döndürür.
  • DictionaryForKey - NSDictionary Verilen anahtar için bir döndürür.
  • DoubleForKey -Verilen anahtar için bir Double değeri döndürür.
  • FloatForKey -Verilen anahtar için bir float değeri döndürür.
  • IntForKey -Verilen anahtar için bir tamsayı değeri döndürür.
  • StringArrayForKey - String Verilen anahtar değerindeki bir nesne dizisini döndürür.
  • StringForKey -Verilen anahtar için bir dize değeri döndürür.
  • URLForKey - NSUrl Verilen anahtar için bir değer döndürür.

Örneğin, aşağıdaki kod Kullanıcı varsayılanlarından bir Boole değeri okur:

// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
...

// Get value
var useHeader = plist.BoolForKey("UseHeader");

Varsayılan değerler yazılıyor

Yukarıdaki değerleri okuduktan sonra, istenen kullanıcı varsayılan veritabanına eriştiyseniz, anahtar/değer çiftlerini ve yazılmakta olan veri türüne bağlı olarak birkaç kullanışlı yöntemi kullanarak varsayılanlara değerler yazabilirsiniz:

  • SetBool -Verilen Boole değerini verilen anahtara yazar.
  • SetDouble -Verilen çift değeri verilen anahtara yazar.
  • SetFloat -Verilen float değerini verilen anahtara yazar.
  • SetString -Belirtilen dize değerini verilen anahtara yazar.
  • SetURL -Verilen anahtara belirtilen URL ( NSUrl ) değerini yazar.

Örneğin, aşağıdaki kod Kullanıcı varsayılanlarına bir Boole değeri Yazar:

// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
...

// Save value
plist.SetBool(useHeader, "UseHeader");
...

Önemli

Uygulamanız ilk yürütüldüğünde, NSUserDefaults uygulamanın Kullanıcı Varsayılanları veritabanından anahtar ve değerleri okur ve bir değer gerektiğinde veritabanını açıp okumayı önlemek için bunları belleğe kaydeder.

Özet

Bu makale, NSUserDefaults sınıfının ve son kullanıcının Xamarin. IOS uygulamanızı yapılandırmak için kullanabileceği bir seçenek kümesi sağlamak için nasıl kullanılabileceğini ele aldı. Buna ek olarak, bir uzantı ile üst uygulama arasında veya bir gruptaki uygulamalar arasında iletişim kurmak için uygulama gruplarının kullanımını ele alınmaktadır.