【发布时间】:2013-09-27 04:27:27
【问题描述】:
自从人们开始升级到 iOS 7 以来,我的一个实时应用程序发生了数百次崩溃。其他人看到过这个问题吗?在装有 iOS 7 的 iPad 3 上无法重现...
Crashlytics 链接:crashes.to/s/edf2e71d9a5
Fatal Exception CALayerInvalidGeometry
CALayer position contains NaN: [nan nan]
0 ... CoreFoundation __exceptionPreprocess + 130
2 CoreFoundation -[NSException initWithCoder:]
3 QuartzCore CA::Layer::set_position(CA::Vec2<double> const&, bool) + 242
4 QuartzCore -[CALayer setPosition:] + 54
5 QuartzCore -[CALayer setFrame:] + 594
6 UIKit -[UIView(Geometry) setFrame:] + 254
7 UIKit -[UILabel setFrame:] + 138
8 UIKit -[UINavigationItemView initWithNavigationItem:] + 384
9 UIKit -[UINavigationItem _titleView] + 92
10 UIKit -[UINavigationBar _prepareForPushAnimationWithItems:] + 68
11 UIKit -[UINavigationBar pushNavigationItem:] + 292
12 UIKit -[UINavigationBar _pushNavigationItem:transition:] + 386
13 UIKit __71-[UINavigationController pushViewController:transition:forceImmediate:]_block_invoke + 150
14 UIKit -[UINavigationController pushViewController:transition:forceImmediate:] + 1384
15 UIKit -[UINavigationController pushViewController:animated:] + 294
16 UIKit -[UIImagePickerController _setupControllersForCurrentSourceType] + 112
17 UIKit -[UIImagePickerController setSourceType:] + 456
18 ... libdispatch.dylib _dispatch_call_block_and_release + 10
19 libdispatch.dylib _dispatch_client_callout + 22
20 libdispatch.dylib _dispatch_main_queue_callback_4CF$VARIANT$mp + 268
21 CoreFoundation __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
22 CoreFoundation __CFRunLoopRun + 1300
23 CoreFoundation CFRunLoopRunSpecific + 522
24 CoreFoundation CFRunLoopRunInMode + 106
25 GraphicsServices GSEventRunModal + 138
26 UIKit UIApplicationMain + 1136
【问题讨论】:
-
我们无法在测试中发生异常。我们只从 Crashlytics 获知它,并假设它会从应用程序中崩溃。
-
我得到了同样的结果 - 让我们比较一下笔记。我假设这从 UIImagePickerController 开始。我将它用于相机和照片库访问。我怀疑这在访问照片库期间由于导航栏的东西而崩溃。我将图像选择器放在 UIPopoverController 中并将其呈现给用户 - 也许与它有关?
-
我只在这种情况下得到同样的结果:我第一次从 iPad 上的 uibarbuttonitem 调出库版本的选择器。系统要求用户授予访问照片库的权限。用户说是,我得到了崩溃。
-
从访问照片库的 UIBarButtonItem 在 iOS 7 上的 iPad 上显示 UIImagePickerController 时遇到此问题。有人知道如何重置照片隐私,以便再次显示照片隐私消息吗?
-
建议的解决方法是调用 ALAssetLibrary 来获取缩略图图像或其他可以工作或导致对话框显示的东西。然后在回调的块中,显示图像选择器。
标签: ios ipad uiimagepickercontroller ios7