Práce s uživatelskými výchozími hodnotami v Xamarin. iOS
Tento článek popisuje práci s NSUserDefault pro uložení výchozích nastavení v aplikaci nebo rozšíření Xamarin. iOS.
NSUserDefaultsTřída poskytuje způsob, jak aplikace a rozšíření pro iOS programově interagovat se systémem výchozích hodnot systému. Pomocí systému výchozích hodnot může uživatel nakonfigurovat chování nebo styl aplikace tak, aby splňovaly Předvolby (na základě návrhu aplikace). Například pokud chcete prezentovat data v metrikách vs-britských měřeních nebo vybrat daný motiv uživatelského rozhraní.
Při použití se skupinami aplikací NSUserDefaults poskytuje také způsob, jak komunikovat mezi aplikacemi (nebo rozšířeními) v rámci dané skupiny.
O výchozích nastaveních uživatele
Jak je uvedeno výše, uživatelské výchozí hodnoty () se dají NSUserDefaults Přidat do aplikace (nebo rozšíření) a použít k zajištění konfigurovatelných možností, které může koncový uživatel upravovat, aby upravil vzhled nebo fungování aplikace za běhu.
Když se vaše aplikace poprvé spustí, NSUserDefaults přečte klíče a hodnoty z databáze výchozích hodnot uživatele aplikace a uloží je do paměti, aby se zabránilo otevírání a čtení databáze pokaždé, když je požadovaná hodnota.
Důležité
Apple už nedoporučuje, aby vývojář volal Synchronize metodu 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 zachovala v synchronizaci s výchozími databázemi uživatele.
NSUserDefaultsTřída obsahuje několik pohodlných metod pro čtení a zápis hodnot předvoleb pro běžné datové typy, například: String, Integer, float, Boolean a adresy URL. Jiné typy dat je možné archivovat pomocí NSData a pak je číst nebo zapisovat do databáze výchozích hodnot uživatele. další informace najdete v tématu předvolby společnosti Apple a příručka pro Nastavení programování.
Přístup ke sdílené instanci NSUserDefaults
Instance sdílených uživatelských výchozích hodnot poskytuje přístup k výchozím hodnotám uživatele pro aktuálního uživatele zařízení. Pokud objekt Shared Defaults neexistuje, vytvoří se při prvním otevření a inicializaci pomocí následujících informací:
NSArgumentDomainSkládající se z výchozích hodnot, které se analyzují z aktuální aplikace.- Doména identifikátoru sady prostředků aplikace
NSGlobalDomainSkládající se z výchozích hodnot sdílených všemi aplikacemi.- Samostatná doména pro každého z upřednostňovaných jazyků uživatele.
NSRegistrationDomainSe sadou dočasných výchozích hodnot, které může aplikace upravit, aby se zajistilo, že vyhledávání budou vždycky úspěšná.
Chcete-li získat přístup k instanci výchozích hodnot uživatele Shared, 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 aplikací je NSUserDefaults lze použít ke komunikaci mezi aplikacemi (nebo rozšířeními) v rámci dané skupiny. nejdřív budete muset zajistit, aby byla skupina aplikací a požadovaná id aplikace správně nakonfigurované v části certifikáty, profily identifikátorů v iOS Dev Center a byly nainstalované ve vývojovém prostředí.
V dalším kroku musí vaše aplikace nebo projekty rozšíření mít jedno z platných ID aplikací, které jste vytvořili výše, a tento Entitlements.plist soubor musí být zahrnut do sady prostředků aplikace se skupinami aplikací povoleno a zadáno.
Na tomto místě se k výchozím nastavením uživatele skupiny sdílené aplikace dostanete 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 části group.com.xamarin.todaysharing , ke kterým chcete získat přístup. Další informace najdete v dokumentaci k funkcím pro skupinu aplikací .
Načítají se výchozí hodnoty.
Po získání 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ěkolik praktických metod na základě typu čtených dat:
ArrayForKey-Vrátí poleNSObjectspro 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íč.DoubleForKey– Vrátí hodnotu typu Double pro daný klíč.FloatForKey– Vrátí hodnotu typu 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 získání 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 pohodlných metod na základě typu dat, která jsou zapsána:
SetBool-Zapíše zadanou logickou hodnotu na daný klíč.SetDouble– Zapíše zadanou hodnotu typu Double na daný klíč.SetFloat-Zapíše danou hodnotu typu float na daný klíč.SetString-Zapíše danou řetězcovou hodnotu na daný klíč.SetURL– Zapíše zadanou hodnotu URL (NSUrl) na daný klíč.
Například následující kód by napsal 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 databáze výchozích hodnot uživatele aplikace a uloží je do paměti, aby se zabránilo otevírání a čtení databáze pokaždé, když je požadovaná hodnota.
Souhrn
Tento článek pojednává o NSUserDefaults třídě a o tom, jak je možné ji použít k poskytnutí sady možností, které může koncový uživatel použít ke konfiguraci vaší aplikace Xamarin. iOS. Kromě toho pojednává o použití skupin aplikací ke komunikaci mezi příponou a její nadřazenou aplikací nebo mezi aplikacemi ve skupině.