如果未授予照片访问权限并且请求权限的对象即将释放,则应用程序崩溃。照片框架崩溃:'此应用程序不允许访问照片数据。'
Apple的示例代码(用于Photos框架)也崩溃了。
我的应用程序崩溃与下面的堆栈跟踪:
*** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'This application is not allowed to access Photo data.' *** First throw call stack: ( 0 CoreFoundation 0x000000010a324f65 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x000000010c030deb objc_exception_throw + 48 2 PhotoLibraryServices 0x000000011c1f7e2d -[PLPhotoLibrary initWithTransientContext:name:] + 1183 3 Photos 0x000000011bd6a445 __30-[PHPhotoLibrary photoLibrary]_block_invoke + 59 4 libdispatch.dylib 0x0000000110f5e49b _dispatch_client_callout + 8 5 libdispatch.dylib 0x0000000110f49e28 dispatch_once_f + 543 6 Photos 0x000000011bd6a404 -[PHPhotoLibrary photoLibrary] + 140 7 Photos 0x000000011bd3e5e8 -[PHCoreImageManager _cancelAndFlushPreheatItemsForAssets:CPLPrefetching:domain:operation:passingTestHandler:didCancelHandler:] + 174 8 Photos 0x000000011bd5900c -[PHImageManager dealloc] + 176 9 libobjc.A.dylib 0x000000010c044afe _ZN11objc_object17sidetable_releaseEb + 232 10 MyApp 0x000000010f271812 _TToFC12MyApp16PhotosDataSourceE + 66 11 libobjc.A.dylib 0x000000010c02f7bb _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 127 12 libobjc.A.dylib 0x000000010c03a390 objc_destructInstance + 93 13 libobjc.A.dylib 0x000000010c03a3c3 object_dispose + 22 14 MyApp 0x000000010f271796 _TFC12MyApp16PhotosDataSourceD + 198 15 MyApp 0x000000010f2717c2 _TToFC12MyApp16PhotosDataSourceD + 34 16 libobjc.A.dylib 0x000000010c044afe _ZN11objc_object17sidetable_releaseEb + 232 17 MyApp 0x000000010f2668f2 _TToFC12MyApp25PhotoPickerViewControllerE + 178 18 libobjc.A.dylib 0x000000010c02f7bb _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 127 19 libobjc.A.dylib 0x000000010c03a390 objc_destructInstance + 93 20 libobjc.A.dylib 0x000000010c03a3c3 object_dispose + 22 21 UIKit 0x000000010adb54b9 -[UIResponder dealloc] + 130 22 UIKit 0x000000010ad40721 -[UIViewController dealloc] + 1949 23 UIKit 0x000000010ad1c97b -[UIPresentationController .cxx_destruct] + 262 24 libobjc.A.dylib 0x000000010c02f7bb _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 127 25 libobjc.A.dylib 0x000000010c03a390 objc_destructInstance + 93 26 libobjc.A.dylib 0x000000010c03a3c3 object_dispose + 22 27 UIKit 0x000000010ad185db -[UIPresentationController dealloc] + 56 28 UIKit 0x000000010b4a9046 -[_UIFullscreenPresentationController dealloc] + 56 29 libobjc.A.dylib 0x000000010c044afe _ZN11objc_object17sidetable_releaseEb + 232 30 UIKit 0x000000010ad1838c __destroy_helper_block_411 + 24 31 libsystem_blocks.dylib 0x0000000110fdb6b1 _Block_release + 128 32 UIKit 0x000000010b568d9c -[_UIViewControllerTransitionContext .cxx_destruct] + 94 33 libobjc.A.dylib 0x000000010c02f7bb _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 127 34 libobjc.A.dylib 0x000000010c03a390 objc_destructInstance + 93 35 libobjc.A.dylib 0x000000010c03a3c3 object_dispose + 22 36 UIKit 0x000000010b567825 -[_UIViewControllerTransitionContext dealloc] + 56 37 UIKit 0x000000010b568e51 -[_UIViewControllerOneToOneTransitionContext dealloc] + 79 38 libobjc.A.dylib 0x000000010c044afe _ZN11objc_object17sidetable_releaseEb + 232 39 MyApp 0x000000010d4818d2 block_destroy_helper + 66 40 MyApp 0x000000010d481988 _TPA__TFFC16MyApp31CustomShrinkAnimator17animateTransitionFS0_FPSo36UIViewControllerContextTransitioning_T_U0_FSbT_ + 152 41 MyApp 0x000000010d481a28 _TPA__TTRXFo_dSb_dT__XFo_iSb_iT__ + 120 42 MyApp 0x000000010d481aed block_destroy_helper8 + 13 43 libsystem_blocks.dylib 0x0000000110fdb6b1 _Block_release + 128 44 UIKit 0x000000010ac5ee47 -[UIViewAnimationBlockDelegate .cxx_destruct] + 43 45 libobjc.A.dylib 0x000000010c02f7bb _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 127 46 libobjc.A.dylib 0x000000010c03a390 objc_destructInstance + 93 47 libobjc.A.dylib 0x000000010c03a3c3 object_dispose + 22 48 libobjc.A.dylib 0x000000010c044afe _ZN11objc_object17sidetable_releaseEb + 232 49 CoreFoundation 0x000000010a228d4d -[__NSDictionaryI dealloc] + 141 50 libobjc.A.dylib 0x000000010c044afe _ZN11objc_object17sidetable_releaseEb + 232 51 libobjc.A.dylib 0x000000010c0450b8 _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 488 52 CoreFoundation 0x000000010a2129c6 _CFAutoreleasePoolPop + 22 53 CoreFoundation 0x000000010a246941 __CFRunLoopRun + 2081 54 CoreFoundation 0x000000010a245e98 CFRunLoopRunSpecific + 488 55 GraphicsServices 0x0000000112598ad2 GSEventRunModal + 161 56 UIKit 0x000000010abb8676 UIApplicationMain + 171 57 MyApp 0x00000001082b470d main + 109 58 libdyld.dylib 0x0000000110f9392d start + 1 59 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException
任何指针将非常感激。
感谢。现在,我没有使用任何没有访问权限的照片框架API。其实我没有抓取,但我实例化PHCachingImageManager没有获得权限,这在解除分配导致崩溃。 –
@OFenômeno非常感谢你,这么重要的细节。如果您的应用在从图像选择器返回时崩溃(如果权限被拒绝),请确保在检查权限之前不要初始化imageManager! – TimLR
您应该检查“PHAuthorizationStatusRestricted”(即父母控制)和“PHAuthorizationStatusDenied”状态。 – Rivera