我有一个使用该ALAssets
框架访问用户照片库的应用程序。我编写了一些代码来检测应用程序是否有权访问照片库,如果没有,我会显示一条警告消息,告诉用户在设置中为应用程序打开位置服务。
问题是,当用户手动更改隐私设置然后重新打开应用程序时,iOS 会强制应用程序因 SIGKILL 崩溃。
我注意到另一个应用程序处理此问题的方式是通过某种方式检测隐私设置的更改,并在用户下次打开它时强制应用程序重新启动。有谁知道如何做到这一点?
我有一个使用该ALAssets
框架访问用户照片库的应用程序。我编写了一些代码来检测应用程序是否有权访问照片库,如果没有,我会显示一条警告消息,告诉用户在设置中为应用程序打开位置服务。
问题是,当用户手动更改隐私设置然后重新打开应用程序时,iOS 会强制应用程序因 SIGKILL 崩溃。
我注意到另一个应用程序处理此问题的方式是通过某种方式检测隐私设置的更改,并在用户下次打开它时强制应用程序重新启动。有谁知道如何做到这一点?
你误解了正在发生的事情。您的应用程序没有崩溃(尽管如果您使用调试器运行应用程序,它可能会出现)。
当您切换到设置应用程序(并且您的应用程序在后台暂停)并更改隐私设置时,暂停的应用程序将被终止。当您切换回您的应用程序时,它只是再次启动。这与您的应用因任何其他原因被杀死没有什么不同。
您可以对应用程序进行编码以通过恢复其先前状态来处理此问题。您谈论的另一个应用程序只是将用户返回到以前的状态。许多应用程序都这样做。它与因隐私更改而被杀死无关。该应用程序会在因任何原因被杀死时恢复状态。
authorizationStatus
您可以使用 的类方法检查您是否被授权访问照片库ALAssetsLibrary
。您应该在每次您的应用“打开”时调用的某种方法中检查此值,并相应地更新您的 UI。