Praca z wartościami domyślnymi użytkownika na platformie Xamarin.iOS

W tym artykule opisano pracę z NSUserDefault w celu zapisania ustawień domyślnych w aplikacji lub rozszerzeniu platformy Xamarin.iOS.

Klasa NSUserDefaults umożliwia programową interakcję aplikacji i rozszerzeń systemu iOS z systemem iOS z systemem . Korzystając z systemu Domyślne, użytkownik może skonfigurować zachowanie lub styl aplikacji w celu spełnienia swoich preferencji (na podstawie projektu aplikacji). Na przykład aby przedstawić dane w pomiarach metryki a imperialnych lub wybrać dany motyw interfejsu użytkownika.

W przypadku użycia z grupami NSUserDefaults aplikacji umożliwia również komunikację między aplikacjami (lub rozszerzeniami) w ramach danej grupy.

Informacje o domyślnych użytkownikach

Jak wspomniano powyżej, wartości domyślne użytkownika (NSUserDefaults) można dodać do aplikacji (lub rozszerzenia) i użyć do zapewnienia konfigurowalnych opcji, które użytkownik końcowy może zmodyfikować w celu dostosowania wyglądu lub działania aplikacji w czasie wykonywania.

Po pierwszym uruchomieniu NSUserDefaults aplikacji odczytuje klucze i wartości z bazy danych User Defaults Database aplikacji i buforuje je w pamięci, aby uniknąć otwierania i odczytywania bazy danych za każdym razem, gdy wymagana jest wartość.

Ważne

Firma Apple nie zaleca już, aby deweloper wywołał metodę Synchronize w celu bezpośredniej synchronizacji pamięci podręcznej w pamięci z bazą danych. Zamiast tego będzie ona automatycznie wywoływana w okresowych odstępach czasu, aby zachować pamięć podręczną w pamięci zsynchronizowaną z domyślną bazą danych użytkownika.

Klasa NSUserDefaults zawiera kilka wygodnych metod odczytywania i zapisywania wartości preferencji dla typowych typów danych, takich jak ciąg, liczba całkowita, zmiennoprzecinkowa, wartość logiczna i adresy URL. Inne typy danych można zarchiwizować przy użyciu polecenia NSData, a następnie odczytywać lub zapisywać w bazie danych User Defaults Database. Aby uzyskać więcej informacji, zobacz Preferencje firmy Apple i przewodnik programowania Ustawienia.

Uzyskiwanie dostępu do udostępnionego wystąpienia NSUserDefaults

Wystąpienie domyślne użytkownika udostępnionego zapewnia dostęp do ustawień domyślnych użytkownika dla bieżącego użytkownika urządzenia. Jeśli obiekt Udostępnione wartości domyślne nie istnieje, jest tworzony przy pierwszym uzyskiwaniu dostępu do obiektu i inicjowany przy użyciu następujących informacji:

  • Element NSArgumentDomain składający się z wartości domyślnych analizowanych z bieżącej aplikacji.
  • Domena identyfikatora pakietu aplikacji.
  • Element NSGlobalDomain składający się z wartości domyślnych udostępnianych przez wszystkie aplikacje.
  • Oddzielna domena dla każdego z preferowanych języków użytkownika.
  • Element NSRegistrationDomain z zestawem tymczasowych wartości domyślnych, które można zmodyfikować przez aplikację, aby upewnić się, że wyszukiwania są zawsze pomyślne.

Aby uzyskać dostęp do wystąpienia wartości domyślnych współużytkowanego użytkownika, użyj następującego kodu:

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

Uzyskiwanie dostępu do wystąpienia NSUserDefaults grupy aplikacji

Jak wspomniano powyżej, przy użyciu grup NSUserDefaults aplikacji można użyć do komunikowania się między aplikacjami (lub rozszerzeniami) w ramach danej grupy. Najpierw należy upewnić się, że grupa aplikacji i wymagane identyfikatory aplikacji zostały prawidłowo skonfigurowane w sekcji Certyfikaty, identyfikatory i profile w systemie iOS Centrum deweloperów i zostały zainstalowane w środowisku projektowym.

Następnie projekty aplikacji i/lub rozszerzenia muszą mieć jeden z prawidłowych identyfikatorów aplikacji utworzonych powyżej, a Entitlements.plist plik musi zostać uwzględniony w pakiecie aplikacji z włączonymi i określonymi grupami aplikacji.

Po wykonaniu tych wszystkich czynności można uzyskać dostęp do wartości domyślnych użytkowników udostępnionej grupy aplikacji przy użyciu następującego kodu:

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

Gdzie group.com.xamarin.todaysharing to grupa aplikacji utworzona w obszarze Certyfikaty, identyfikatory i profile , do których chcesz uzyskać dostęp. Aby uzyskać więcej informacji, zobacz dokumentację Możliwości grupy aplikacji.

Odczytywanie wartości domyślnych

Po dokonaniu dostępu do żądanej domyślnej bazy danych użytkownika można odczytywać wartości z wartości domyślnych przy użyciu par klucz/wartość i kilka metod wygody na podstawie typu odczytywanych danych:

  • ArrayForKey — Zwraca tablicę NSObjects dla danej wartości klucza.
  • BoolForKey — Zwraca wartość logiczną dla danego klucza.
  • DataForKey — Zwraca NSData obiekt dla danego klucza.
  • DictionaryForKey — Zwraca wartość NSDictionary dla danego klucza.
  • DoubleForKey - Zwraca podwójną wartość dla danego klucza.
  • FloatForKey — Zwraca wartość zmiennoprzecinkową dla danego klucza.
  • IntForKey — Zwraca wartość całkowitą dla danego klucza.
  • StringArrayForKey — Zwraca tablicę String obiektów z danej wartości klucza.
  • StringForKey - Zwraca wartość ciągu dla danego klucza.
  • URLForKey — Zwraca NSUrl wartość dla danego klucza.

Na przykład następujący kod odczytuje wartość logiczną z wartości domyślnej użytkownika:

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

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

Pisanie wartości domyślnych

Podobnie jak w przypadku odczytywania powyższych wartości, po dokonaniu dostępu do żądanej domyślnej bazy danych użytkownika można zapisywać wartości w wartościach domyślnych przy użyciu par klucz/wartość i kilka metod wygody na podstawie typu zapisywanych danych:

  • SetBool - Zapisuje daną wartość logiczną dla danego klucza.
  • SetDouble - Zapisuje daną podwójną wartość dla danego klucza.
  • SetFloat - Zapisuje daną wartość zmiennoprzecinkową dla danego klucza.
  • SetString - Zapisuje daną wartość ciągu dla danego klucza.
  • SetURL — Zapisuje daną wartość adresu URL (NSUrl) dla danego klucza.

Na przykład następujący kod napisze wartość logiczną w polu User Defaults (Wartości domyślne użytkownika):

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

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

Ważne

Po pierwszym wykonaniu NSUserDefaults aplikacji odczytuje klucze i wartości z bazy danych User Defaults Database aplikacji i zapisuje je w pamięci, aby uniknąć otwierania i odczytywania bazy danych za każdym razem, gdy wymagana jest wartość.

Podsumowanie

W tym artykule omówiono klasę NSUserDefaults i sposób jej użycia w celu udostępnienia zestawu opcji, których użytkownik końcowy może użyć do skonfigurowania aplikacji platformy Xamarin.iOS. Ponadto zostały omówione przy użyciu grup aplikacji do komunikowania się między rozszerzeniem a aplikacją nadrzędną lub między aplikacjami w grupie.