我正在制作一个iOS应用程序,并且在iOS世界中是新手。在这个应用程序中,我想访问用户联系人。一切进展顺利,运作良好。但是我经历了一个惊人的行为,因为我是android开发人员,所以在Android中还从未见过。
在iOS中访问用户联系人,我使用的是Contacts Framework。我认为它比iOS中的其他任何版本都相对容易和快捷。但是,我无法完全利用这一点。让我告诉你我做了什么,我遇到了什么问题。
我所做的事情:我要求获得ViewController的权限,并且向Dialog提示用户询问联系人权限。如果用户允许许可,一切都会顺利进行,但是当用户不允许许可时,就会出现麻烦。
访问用户联系人更为必要,因为“我的应用”的整个工作和基本商业构想都取决于用户联系人。现在要处理这个问题,当用户不允许权限时,我将显示另一个对话框,告诉他必须允许权限,以便App可以继续进行。
现在,我将用户带到他可以允许该权限的设置,或者他可以简单地再次返回。现在结帐2例
情况1:当用户进入“设置”屏幕并再次返回时 允许许可 当我将用户带到“设置”屏幕时,我不再允许他回到我的应用程序,而是尝试再次向他显示相同的对话框,以在每种情况下都允许其访问权限。一切顺利。我的意思是出于测试目的,我多次重复相同的步骤,我的意思是我不允许自己的“联系人”权限,这需要我进行设置,从设置屏幕返回到我的应用程序,然后我再次可以看到与我相同的对话框设置屏幕。 这很好
情况2::当用户进入设置屏幕并允许 允许: 在这里,当用户允许权限时,我会在日志中收到“调试器消息:由于信号9而终止”消息。当我回到我的应用程序时,它又重新开始了。看来我的应用程序重新打开或在后台崩溃。
重要:为此,我检查了我的记忆或任务在后台执行的所有操作,但后台没有任何操作。崩溃前我的内存大小为54.78 mb。而且我不认为这值得担心。
任何人都知道发生了什么事吗?
答案 0 :(得分:4)
您的应用程序没有崩溃,只是被iOS强制以新的隐私设置重新启动。 iOS会SIGKILL该应用程序。 (这是iOS的默认行为)。您可以检出-WWDC 2012 Session Videos: Privacy Support in iOS and OS X以获得更多信息。
这不适用于“位置”权限。
答案 1 :(得分:3)
这是预期的行为。当用户更改“联系人”,“相机”,“麦克风”和“照片”(可能还有其他)的权限时,iOS会终止该应用程序。