使用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:
}
*“您不必使用UserDefaults”* - 您的意思是您不能使用UserDefaults。至少不适合这些设置。 – rmaddy
是的,对于混淆抱歉。 –