使用Swift在iOS中使用userDefaults检查应用程序设置

问题描述:

如何检查用户将应用程序设置设置为什么?我想我应该能够使用UserDefaults来做到这一点。我特别想检查用户是否允许应用访问联系人。如果我知道钥匙,我知道如何获得设置。我希望能够访问UserDefaults为应用程序提供的所有设置。我正在使用Swift创建一个iOS应用程序。使用Swift在iOS中使用userDefaults检查应用程序设置

您误解了UserDefaults类的功能。它不知道用户的设置。它用于您永久保存用户的设置(从您的应用程序中)。

至于如何获取这种信息。您必须使用每个API来检查权限。例如,访问GPS需要使用LocationManager API并检查那里的许可。

要检查如果用户已给联系人的访问,你必须使用联系人API(link here

更具体地说this方法:

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

编辑:

你真的应该读关于UserDefaults类的用途。 (link here

您不能使用UserDefaults来检查用户是否允许应用程序访问联系人。尝试下面的代码。

 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

*“您不必使用UserDefaults”* - 您的意思是您不能使用UserDefaults。至少不适合这些设置。 – rmaddy

+0

是的,对于混淆抱歉。 –