ios - 照片框架崩溃: 'This application is not allowed to access Photo data.'

标签 ios exception crash photosframework

如果未授予照片访问权限,并且要释放权限的对象即将被释放,则应用程序崩溃。

苹果的示例代码(用于“照片”框架)也崩溃了。

我的应用因以下堆栈跟踪而崩溃:

***由于未捕获的异常“NSObjectInaccessibleException”而终止应用程序,原因:“不允许该应用程序访问照片数据。”

***首先抛出调用堆栈:
(
0 CoreFoundation 0x000000010a324f65 __exceptionPreprocess + 165
1个libobjc.A.dylib 0x000000010c030deb objc_exception_throw + 48
2 PhotoLibraryServices 0x000000011c1f7e2d-[PLPhotoLibrary initWithTransientContext:name:] + 1183
3张照片0x000000011bd6a445 __30- [PHPhotoLibrary photoLibrary] _block_invoke + 59
4 libdispatch.dylib 0x0000000110f5e49b _dispatch_client_callout + 8
5 libdispatch.dylib 0x0000000110f49e28 dispatch_once_f + 543
6张照片0x000000011bd6a404-[PHPhotoLibrary photoLibrary] + 140
7张照片0x000000011bd3e5e8-[PHCoreImageManager _cancelAndFlushPreheatItemsForAssets:CPLPrefetching:domain:operation:passingTestHandler:didCancelHandler:] + 174
8张照片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解除分配] + 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图形服务0x0000000112598ad2 GSEventRunModal + 161
56 UIKit 0x000000010abb8676 UIApplicationMain + 171
57 MyApp 0x00000001082b470d主+ 109
58 libdyld.dylib 0x0000000110f9392d开始+ 1
59 ??? 0x0000000000000001 0x0 + 1
)
libc++ abi.dylib:以类型为NSException的未捕获异常终止

任何指针将不胜感激。

最佳答案

这是预期的行为。
在使用Photos Framework的任何方法(例如,获取,更改)之前,请检查对Photo-Library的权限状态。这是通过调用authorizationStatusPHPhotoLibrary方法来完成的。如果此方法为PHAuthorizationStatusNotDetermined,请使用requestAuthorization方法询问权限。如果authorizationStatus的值是PHAuthorizationStatusDenied,请适当降低。
要点是让requestAuthorization提示您访问Photo-Library,而不是直接获取方法。

关于ios - 照片框架崩溃: 'This application is not allowed to access Photo data.' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33266346/

相关文章:

ios - Swift - 无法将类型 'UINavigationController' 的值转换为 'MapViewController'

ios - 为什么我可以从相机胶卷的视频中获得 GL_LUMINANCE 而不是 GL_LUMINANCE_ALPHA?

ios - 如何使用 swift 和 UIkit 创建逼真的悬崖坠落球

c# - 使用查询字符串解析 AppSettings 值时出错

android - Android中的HtmlUnit错误:任务执行失败: 'app:preDexDebug'

windows-7 - MS Access 2010 子报告运行良好,但主报告卡住,仅适用于用户,不适用于开发。为什么,以及如何解决?

ios - 将所有 UIAlertView 对象作为全局对象访问以对其进行通用控制(在解除分配 View Controller 后解决警报中的 CRASH)

objective-c - 隐藏 UIDatePicker 的事件

PHP try-catch 不工作

asp.net - elmah导致应用程序崩溃