2017-09-08 1 views
1

Comment vérifier les paramètres de l'application définis par l'utilisateur? Je pense que je suis supposé pouvoir utiliser UserDefaults pour le faire. Je veux notamment vérifier si l'utilisateur a autorisé l'application à accéder aux Contacts. Je sais comment obtenir le réglage si je connaissais la clé. Je voudrais être en mesure d'accéder à tous les paramètres que UserDefaults ont pour l'application. J'utilise Swift pour créer une application iOS.Vérifier les paramètres de l'application à l'aide de la commande userDefaults dans iOS à l'aide de Swift

Répondre

1

Vous ne comprenez pas ce que fait la classe UserDefaults. Il n'a aucune connaissance des paramètres de l'utilisateur. Il est utilisé pour enregistrer les paramètres d'un utilisateur (depuis votre application) de manière persistante.

Pour savoir comment accéder à ce type d'information. Vous devez utiliser chacune des API pour vérifier les autorisations. Par exemple, l'accès au GPS nécessite l'utilisation de l'API LocationManager et la vérification de l'autorisation.

Pour vérifier si un utilisateur a donné accès aux contacts, vous devez utiliser l'API Contacts (link here)

Plus précisément méthode this:

class func authorizationStatus(for entityType: CNEntityType) -> CNAuthorizationStatus 

EDIT:

Vous devriez vraiment lire à quoi sert la classe UserDefaults. (link here)

0

Vous ne pouvez pas utiliser UserDefaults pour vérifier si l'utilisateur a autorisé l'application à accéder aux contacts. Essayez le code suivant.

 let status = CNContactStore.authorizationStatus(for: CNEntityType.contacts) 

     switch (status) { 

     // Not determined or restricted (e.g.Parent control) 
     case CNAuthorizationStatus.notDetermined,CNAuthorizationStatus.restricted: 


     // Denied 
     case CNAuthorizationStatus.denied: 

     // Allowed 
     case CNAuthorizationStatus.authorized: 

     } 
+0

* "Vous n'avez pas besoin d'utiliser UserDefaults" * - vous ne pouvez pas utiliser 'UserDefaults'. Au moins pas pour ces paramètres. – rmaddy

+0

Oui, désolé pour la confusion. –