Práce s výchozími nastaveními uživatelů v Xamarin.iOS
Tento článek popisuje práci s NSUserDefault k uložení výchozího nastavení v aplikaci nebo rozšíření Xamarin.iOS.
Třída NSUserDefaults
poskytuje způsob, jak aplikace a rozšíření pro iOS programově pracovat se systémem defaults System. Pomocí výchozího systému může uživatel nakonfigurovat chování nebo styl aplikace tak, aby splňoval své předvolby (na základě návrhu aplikace). Pokud chcete například prezentovat data v metrice nebo imperial měření nebo vybrat daný motiv uživatelského rozhraní.
Při použití se skupinami NSUserDefaults
aplikací poskytuje také způsob komunikace mezi aplikacemi (nebo rozšířeními) v dané skupině.
O výchozích nastaveních uživatele
Jak je uvedeno výše, můžete do aplikace (NSUserDefaults
nebo rozšíření) přidat výchozí hodnoty uživatele a použít je k poskytnutí konfigurovatelných možností, které může koncový uživatel upravit, aby upravil vzhled nebo operaci aplikace za běhu.
Při prvním spuštění NSUserDefaults
aplikace přečte klíče a hodnoty z výchozí databáze uživatele aplikace a uloží je do mezipaměti, aby se zabránilo otevření a čtení databáze pokaždé, když je potřeba zadat hodnotu.
Důležité
Apple už nedoporučuje, aby vývojář volal metodu Synchronize
pro synchronizaci mezipaměti v paměti s databází přímo. Místo toho se bude automaticky volat v pravidelných intervalech, aby se mezipaměť v paměti synchronizovala s výchozí databází uživatele.
Třída NSUserDefaults
obsahuje několik metod usnadnění čtení a zápisu upřednostňovaných hodnot pro běžné datové typy, jako jsou například řetězec, celé číslo, float, logická hodnota a adresy URL. Jiné typy dat lze archivovat pomocí NSData
, pak číst z nebo zapisovat do výchozí databáze uživatele. Další informace naleznete v části Předvolby a Nastavení Průvodce programováním společnosti Apple.
Přístup ke sdílené instanci NSUserDefaults
Instance výchozích hodnot sdíleného uživatele poskytuje přístup k výchozímu nastavení uživatele pro aktuálního uživatele zařízení. Pokud objekt Shared Defaults neexistuje, vytvoří se při prvním přístupu a inicializaci s následujícími informacemi:
- Skládá
NSArgumentDomain
se z výchozích hodnot parsovaných z aktuální aplikace. - Doména identifikátoru sady prostředků aplikace.
- Skládá
NSGlobalDomain
se z výchozích hodnot sdílených všemi aplikacemi. - Samostatná doména pro každý z upřednostňovaných jazyků uživatele.
- Sada
NSRegistrationDomain
dočasných výchozích hodnot, které může aplikace upravit, aby se zajistilo, že hledání bude vždy úspěšné.
Pokud chcete získat přístup k výchozí instanci sdíleného uživatele, použijte následující kód:
// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
Přístup k instanci NSUserDefaults skupiny aplikací
Jak je uvedeno výše, pomocí skupin NSUserDefaults
aplikací lze použít ke komunikaci mezi aplikacemi (nebo rozšířeními) v dané skupině. Nejprve budete muset zajistit, aby skupina aplikací a požadovaná ID aplikací byly správně nakonfigurované v části Certifikáty, identifikátory a profily v iOSu Dev Center a byly nainstalovány ve vývojovém prostředí.
Dále musí mít vaše projekty aplikace nebo rozšíření jednu z platných ID aplikací, která je vytvořená výše, a Entitlements.plist
soubor musí být součástí sady aplikací s povolenými a zadanými skupinami aplikací.
Když je to všechno na místě, můžete k výchozím nastavením uživatele sdílené skupiny aplikací přistupovat pomocí následujícího kódu:
// Get App Group User Defaults
var plist = new NSUserDefaults ("group.com.xamarin.todaysharing", NSUserDefaultsType.SuiteName);
Kde group.com.xamarin.todaysharing
je skupina aplikací vytvořená v certifikátech, identifikátory a profily , ke kterým chcete získat přístup. Další informace najdete v dokumentaci k funkcím skupiny aplikací.
Čtení výchozích hodnot
Po přístupu k požadované výchozí databázi uživatele můžete číst hodnoty z výchozích hodnot pomocí párů klíč/hodnota a několika metod usnadnění na základě typu přečtených dat:
ArrayForKey
– Vrátí maticiNSObjects
pro danou hodnotu klíče.BoolForKey
– Vrátí logickou hodnotu pro daný klíč.DataForKey
– VrátíNSData
objekt pro daný klíč.DictionaryForKey
- VrátíNSDictionary
pro daný klíč hodnotu.DoubleForKey
– Vrátí dvojitou hodnotu pro daný klíč.FloatForKey
– Vrátí hodnotu float pro daný klíč.IntForKey
– Vrátí celočíselnou hodnotu pro daný klíč.StringArrayForKey
– Vrátí poleString
objektů z dané hodnoty klíče.StringForKey
– Vrátí hodnotu řetězce pro daný klíč.URLForKey
– VrátíNSUrl
hodnotu pro daný klíč.
Například následující kód by načetl logickou hodnotu z výchozích hodnot uživatele:
// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
...
// Get value
var useHeader = plist.BoolForKey("UseHeader");
Zápis výchozích hodnot
Stejně jako při čtení výše uvedených hodnot můžete po přístupu k požadované výchozí databázi uživatele zapsat hodnoty do výchozích hodnot pomocí párů klíč/hodnota a několika metod usnadnění na základě typu zapisovaných dat:
SetBool
- Zapíše danou logickou hodnotu do daného klíče.SetDouble
- Zapíše danou dvojitou hodnotu do daného klíče.SetFloat
- Zapíše danou hodnotu float do daného klíče.SetString
– Zapíše danou řetězcovou hodnotu do daného klíče.SetURL
- Zapíše danou adresu URL (NSUrl
) hodnotu do daného klíče.
Například následující kód zapíše logickou hodnotu do výchozích hodnot uživatele:
// Get Shared User Defaults
var plist = NSUserDefaults.StandardUserDefaults;
...
// Save value
plist.SetBool(useHeader, "UseHeader");
...
Důležité
Když se vaše aplikace poprvé spustí, NSUserDefaults
přečte klíče a hodnoty z výchozí databáze uživatele aplikace a uloží je do mezipaměti, aby se zabránilo otevření a čtení databáze pokaždé, když se vyžaduje hodnota.
Shrnutí
Tento článek se zabývá NSUserDefaults
třídou a jejím použitím k poskytnutí sady možností, které může koncový uživatel použít ke konfiguraci aplikace Xamarin.iOS. Kromě toho se zabývala používáním skupin aplikací ke komunikaci mezi rozšířením a nadřazenou aplikací nebo mezi aplikacemi ve skupině.