Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 (NSUserDefaultsnebo 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á
NSArgumentDomainse z výchozích hodnot parsovaných z aktuální aplikace. - Doména identifikátoru sady prostředků aplikace.
- Skládá
NSGlobalDomainse 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
NSRegistrationDomaindoč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í maticiNSObjectspro danou hodnotu klíče.BoolForKey– Vrátí logickou hodnotu pro daný klíč.DataForKey– VrátíNSDataobjekt pro daný klíč.DictionaryForKey- VrátíNSDictionarypro 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í poleStringobjektů z dané hodnoty klíče.StringForKey– Vrátí hodnotu řetězce pro daný klíč.URLForKey– VrátíNSUrlhodnotu 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ě.