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
— ZwracaNSData
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
— ZwracaNSUrl
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.