在之前的系統環境下,UIImagePickerController都可以順利打開。但是自從手機升級了ios10以后,每次打開相機和照片庫都會直接崩潰。
通過google搜索找到StackOverflow的帖子,簡單講就是從ios10開始,調用用戶相機和訪問照片庫都需要先獲取使用權限。具體的方法就是在info.plist文件中添加以下兩項內容:
獲取相機權限:
<key>NSCameraUsageDescription</key> <string>use camera reason</string>
獲取照片庫權限:
<key>NSPhotoLibraryUsageDescription</key> <string>use photos reason</string>
添加這兩項以后,在present UIImagePickerController的時候,系統會自動彈窗獲取用戶許可。
另外,如果直接調用系統默認的相機和照片庫,沒有進行自定義的話,在用戶拒絕提供權限后,相機和照片庫界面仍然會打開。但是此時只有取消鍵是有效的,其它按鍵點擊都沒有反應。因此可以保證當用戶退出相機和照片庫的時候,imagePickerControllerDidCancel的回調方法肯定會被調用到。至於使用自定義界面的,目前尚未測試,尚無法確認。
StackOverflow帖子地址:http://stackoverflow.com/questions/38236723/ios-10-error-access-private-when-using-uiimagepickercontroller/38241350#38241350
PS:感謝google大神和StackOverflow上各位大神!!順便鄙視下什么都搜不到的百度