9

我正在制作一个 iOS 应用程序,我是 iOS 世界的新手。在这个应用程序中,我想访问用户联系人。一切都进展顺利并且运作良好。但是我经历了一个惊人的行为,自从我是 android 开发人员以来,我在 Android 中从未见过。

在 iOS 中访问用户联系人时,我使用的是 Contacts Framework。我认为它比 iOS 中的其他任何东西都相对更容易和更快。但是,我无法完全利用这一点。让我告诉你我做了什么,我遇到了什么问题。

我所做的我要求 ViewController 的权限,并且用户提示对话框询问联系人权限。如果用户允许权限,一切顺利,但是当用户不允许权限时,麻烦就来了。

访问用户联系人更加必要,因为我的应用程序的整个工作和基本业务理念都是基于用户联系人。现在要处理这个问题,当用户不允许权限时,我正在显示另一个对话框,告诉他他必须允许权限,以便应用程序可以继续,到目前为止一切顺利。

现在我将用户带到他可以允许权限的设置,或者他可以简单地再次返回。现在结帐2个案例

案例 1:当用户进入设置屏幕并在未经允许的情况下再次返回当我将用户带到设置屏幕并且没有允许他返回我的应用程序时,我尝试再次向他显示相同的对话框以在每种情况下启用权限。这进展顺利。我的意思是为了测试目的,我多次重复相同的过程,我的意思是我不允许我自己的联系人权限,它需要我设置屏幕,从设置屏幕我回到我的应用程序,我再次能够看到带我的相同对话框到设置屏幕。这可以

案例2:当用户被带到设置屏幕并且他允许权限时:当用户允许权限时,我在日志中收到消息“来自调试器的消息:由于信号9而终止”。当我回到我的应用程序时,它又重新开始了。看起来我的应用程序在后台重新打开或崩溃。

重要提示:为此,我检查了我的记忆或任务在后台执行的任何内容,但在后台没有任何事情发生。我崩溃前的内存大小是 54.78 mb。而且我认为这不值得担心。

任何人都知道发生了什么?

4

2 回答 2

15

您的应用程序不会崩溃,它只是通过 iOS 使用新的隐私设置强制重启。iOS 将 SIGKILL 应用程序。(这是 iOS 的默认行为)。您可以查看 - WWDC 2012 会议视频:iOS 和 OS X 中的隐私支持以获取更多信息。

这不适用于位置权限。

于 2018-11-27T06:12:43.447 回答
5

这是预期的行为。当用户更改通讯录、相机、麦克风和照片(可能还有其他一些)的权限时,iOS 会终止应用程序。

于 2018-11-27T06:10:39.657 回答