Partager via


Utilisation des valeurs par défaut utilisateur dans Xamarin.iOS

Cet article traite de l’utilisation de NSUserDefault pour enregistrer les paramètres par défaut dans une application ou une extension Xamarin.iOS.

La NSUserDefaults classe permet aux applications et extensions iOS d’interagir par programmation avec le système par défaut à l’échelle du système. À l’aide du système par défaut, l’utilisateur peut configurer le comportement ou le style d’une application pour répondre à ses préférences (en fonction de la conception de l’application). Par exemple, pour présenter des données dans les mesures métriques et impériales ou sélectionner un thème d’interface utilisateur donné.

Lorsqu’il est utilisé avec des groupes d’applications, NSUserDefaults fournit également un moyen de communiquer entre les applications (ou extensions) au sein d’un groupe donné.

À propos des valeurs par défaut de l’utilisateur

Comme indiqué ci-dessus, les valeurs par défaut de l’utilisateur (NSUserDefaults) peuvent être ajoutées à une application (ou extension) et utilisées pour fournir des options configurables que l’utilisateur final peut modifier pour ajuster l’apparence ou l’opération de l’application au moment de l’exécution.

Lorsque votre application s’exécute pour la première fois, NSUserDefaults lit les clés et les valeurs de la base de données utilisateur par défaut de l’application et les met en cache en mémoire pour éviter d’ouvrir et de lire la base de données chaque fois qu’une valeur est requise.

Important

Apple ne recommande plus que le développeur appelle la Synchronize méthode pour synchroniser directement le cache en mémoire avec la base de données. Au lieu de cela, il est automatiquement appelé à intervalles périodiques pour maintenir le cache en mémoire synchronisé avec la base de données par défaut d’un utilisateur.

La NSUserDefaults classe contient plusieurs méthodes pratiques pour lire et écrire des valeurs de préférence pour les types de données courants tels que : chaîne, entier, float, booléen et URL. D’autres types de données peuvent être archivés à l’aide NSDatade , puis lus ou écrits dans la base de données par défaut de l’utilisateur. Pour plus d’informations, consultez le Guide de programmation des préférences et des Paramètres d’Apple.

Accès à l’instance NSUserDefaults partagée

L’instance par défaut de l’utilisateur partagé fournit l’accès aux valeurs par défaut de l’utilisateur pour l’utilisateur actuel de l’appareil. Si l’objet Shared Defaults n’existe pas, il est créé la première fois qu’il est accessible et initialisé avec les informations suivantes :

  • Composé NSArgumentDomain des valeurs par défaut analysées à partir de l’application actuelle.
  • Domaine d’identificateur de bundle de l’application.
  • Composé NSGlobalDomain des valeurs par défaut partagées par toutes les applications.
  • Domaine distinct pour chacune des langues préférées de l’utilisateur.
  • Avec NSRegistrationDomain un ensemble de valeurs par défaut temporaires qui peuvent être modifiées par l’application pour vous assurer que les recherches sont toujours réussies.

Pour accéder à l’instance par défaut de l’utilisateur partagé, utilisez le code suivant :

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

Accès à une instance NSUserDefaults du groupe d’applications

Comme indiqué ci-dessus, l’utilisation de groupes NSUserDefaults d’applications peut être utilisée pour communiquer entre les applications (ou extensions) au sein d’un groupe donné. Tout d’abord, vous devez vous assurer que le groupe d’applications et les ID d’application requis ont été correctement configurés dans la section Certificats, identificateurs et profils sur iOS Centre de développement et installés dans l’environnement de développement.

Ensuite, vos projets d’application et/ou d’extension doivent avoir l’un des ID d’application valides créés ci-dessus, et le Entitlements.plist fichier doit être inclus dans le bundle d’applications avec les groupes d’applications activés et spécifiés.

Avec cette totalité en place, les paramètres par défaut de l’utilisateur du groupe d’applications partagés sont accessibles à l’aide du code suivant :

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

group.com.xamarin.todaysharing se trouve le groupe d’applications créé dans certificats, identificateurs et profils auxquels vous souhaitez accéder. Pour plus d’informations, consultez la documentation sur les fonctionnalités du groupe d’applications .

Lecture des valeurs par défaut

Une fois que vous avez accédé à la base de données par défaut utilisateur souhaitée, vous pouvez lire des valeurs à partir des valeurs par défaut à l’aide de paires clé/valeur et plusieurs méthodes pratiques basées sur le type de données lues :

  • ArrayForKey - Retourne un tableau de la valeur de NSObjects clé donnée.
  • BoolForKey - Retourne une valeur booléenne pour la clé donnée.
  • DataForKey - Retourne un NSData objet pour la clé donnée.
  • DictionaryForKey - Retourne une NSDictionary valeur pour la clé donnée.
  • DoubleForKey - Retourne une valeur double pour la clé donnée.
  • FloatForKey - Retourne une valeur float pour la clé donnée.
  • IntForKey - Retourne une valeur entière pour la clé donnée.
  • StringArrayForKey - Retourne un tableau d’objets String à partir de la valeur de clé donnée.
  • StringForKey - Retourne une valeur de chaîne pour la clé donnée.
  • URLForKey - Retourne une NSUrl valeur pour la clé donnée.

Par exemple, le code suivant lit une valeur booléenne à partir des valeurs par défaut de l’utilisateur :

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

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

Écriture de valeurs par défaut

Tout comme la lecture des valeurs ci-dessus, une fois que vous avez accédé à la base de données utilisateur par défaut souhaitée, vous pouvez écrire des valeurs dans les valeurs par défaut à l’aide de paires clé/valeur et de plusieurs méthodes pratiques en fonction du type de données en cours d’écriture :

  • SetBool - Écrit la valeur booléenne donnée dans la clé donnée.
  • SetDouble - Écrit la valeur double donnée dans la clé donnée.
  • SetFloat - Écrit la valeur float donnée dans la clé donnée.
  • SetString - Écrit la valeur de chaîne donnée dans la clé donnée.
  • SetURL - Écrit la valeur d’URL (NSUrl) donnée dans la clé donnée.

Par exemple, le code suivant écrit une valeur booléenne dans les valeurs par défaut de l’utilisateur :

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

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

Important

Lorsque votre application s’exécute pour la première fois, NSUserDefaults lit les clés et les valeurs de la base de données utilisateur par défaut de l’application et les met en mémoire pour éviter l’ouverture et la lecture de la base de données chaque fois qu’une valeur est requise.

Résumé

Cet article a abordé la NSUserDefaults classe et comment elle peut être utilisée pour fournir un ensemble d’options que l’utilisateur final peut utiliser pour configurer votre application Xamarin.iOS. En outre, il a abordé l’utilisation de groupes d’applications pour communiquer entre une extension et son application parente ou entre les applications d’un groupe.