亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用戶更改聯系人訪問權限時,iOS 6中的應用程序崩潰

用戶更改聯系人訪問權限時,iOS 6中的應用程序崩潰

iOS
慕哥9229398 2019-12-15 16:12:36
我有一個使用通訊簿的應用程序。在iOS 6中運行時,當用戶執行需要通訊簿訪問權限的操作時,它將運行此代碼。if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined){    ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);    ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)    {        if (granted)        {            showContactChooser();        }    });    CFRelease(addressBookRef);}else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized){    showContactChooser();}else{    showAccessDeniedAlert();}這非常正常:我能夠讀取聯系人信息,并且當用戶拒絕訪問時,應用程序會做出相應的反應。但是,如果用戶:允許聯系人在應用中訪問,退出該應用,轉到“設置”->“隱私”->“聯系人”,并禁用該應用的“聯系人”訪問權限,運行該應用,當應用在后臺運行時,進入設置并啟用該應用的“聯系人”訪問權限,該應用程序立即崩潰main(),沒有異常信息或有意義的堆棧跟蹤。我試圖打開“所有異?!焙蚚NSException raise]斷點,但這并沒有給我更多信息。即使該應用在啟動過程中未運行上述代碼,也可以重現崩潰。這里發生了什么事?我應該訂閱一個回調嗎?
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

我已經在自己的應用程序中看到了這一點。我也看到其他人也報告了這一點。我很確定這是故意的行為。該操作系統會殺死對隱私權限更改有反應的所有后臺應用程序。蘋果似乎對此采取了大錘的態度。這不是崩潰(盡管在調試器中運行時可能會出現)。應用因其他各種原因而終止。將此添加到原因列表中。這使我們有更多理由在完全重啟應用程序后做好恢復應用程序狀態的工作。

請注意,此行為適用于所有各種隱私設置,例如聯系人,照片,麥克風,日歷和相機。



查看完整回答
反對 回復 2019-12-16
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

通常,當應用程序從掛起狀態恢復時,應從AppDelegate調用application:didEnterForeground。我認為,這將是您重新調整通訊簿權限的好地方。

查看完整回答
反對 回復 2019-12-16
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

在與iOS 7日歷相關的應用中的工作原理相同。如果您在設備上運行應用程序,而不是通過Xcode調試或模擬器運行,則會看到該應用程序重新啟動,用戶看不到。因此,正如rmaddy所說,只要確保您的應用程序“在完全重啟后就可以很好地恢復應用程序狀態……” 

查看完整回答
反對 回復 2019-12-16
  • 3 回答
  • 0 關注
  • 461 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號