作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从以下方法中抛出的异常中获取崩溃报告:
-[_UIAlertControllerAnimatedTransitioning _animateTransition:completionBlock:]
它发生在_UIAlertControllerTransitioning.m:146
崩溃中包含的唯一信息是:
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
完整的调用堆栈如下所示:
Last Exception Backtrace:
0 CoreFoundation 0x1b33bb38 __exceptionPreprocess + 124 (NSException.m:165)
1 libobjc.A.dylib 0x1a5c3062 objc_exception_throw + 34 (objc-exception.mm:521)
2 CoreFoundation 0x1b33ba14 +[NSException raise:format:arguments:] + 92 (NSException.m:131)
3 Foundation 0x1bc31528 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 88 (NSException.m:157)
4 UIKit 0x20b4a706 -[_UIAlertControllerAnimatedTransitioning _animateTransition:completionBlock:] + 700 (_UIAlertControllerTransitioning.m:146)
5 UIKit 0x20b4a052 -[_UIAlertControllerAnimatedTransitioning animateTransition:] + 530 (_UIAlertControllerTransitioning.m:102)
6 UIKit 0x208a0c3e __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 3342 (UIPresentationController.m:850)
7 UIKit 0x207e697e _runAfterCACommitDeferredBlocks + 272 (UIApplication.m:2468)
8 UIKit 0x207d9c8e _cleanUpAfterCAFlushAndRunDeferredBlocks + 520 (UIApplication.m:2447)
9 UIKit 0x2055b8b8 _afterCACommitHandler + 108 (UIApplication.m:2499)
10 CoreFoundation 0x1b2f77fe __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 16 (CFRunLoop.c:1802)
11 CoreFoundation 0x1b2f5a50 __CFRunLoopDoObservers + 278 (CFRunLoop.c:1898)
12 CoreFoundation 0x1b2f6012 __CFRunLoopRun + 1354 (CFRunLoop.c:2849)
13 CoreFoundation 0x1b2491aa CFRunLoopRunSpecific + 466 (CFRunLoop.c:3113)
14 CoreFoundation 0x1b248fcc CFRunLoopRunInMode + 100 (CFRunLoop.c:3143)
15 GraphicsServices 0x1c9f3b3c GSEventRunModal + 76 (GSEvent.c:2245)
16 UIKit 0x205cba4e UIApplicationMain + 146 (UIApplication.m:4089)
17 OnBeat 0x8fd9c main + 48 (AppDelegate.swift:15)
18 libdyld.dylib 0x1aa364e6 _dyld_process_info_notify_release + 26 (dyld_process_info_notify.cpp:327)
最佳答案
来自 this post ,来自 _UIAlertControllerTransitioning.m 行断言的实际异常描述是:
UIAlertController is expected to have a visual style during transitioning
发生这种情况似乎有几个原因:
基于此this post确保您等到 application:didFinishLaunchingWithOptions:
来创建您的窗口。
而不是在你的应用委托(delegate)中这样的东西:
class AppDelegate: UIResponder, UIApplicationDelegate {
// BAD DON'T DO THIS
var window: UIWindow? = UIWindow(frame: UIScreen.main.bounds)
}
确保像这样创建窗口:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
open func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: UIScreen.main.bounds)
// Setup rootViewController and whatever other properties
self.window?.makeKeyAndVisible()
}
}
我通过首先检查 View Controller 的窗口是否是关键窗口来避免这种情况:
guard let window = self.view?.window else {
print("Attempt to present alert on view controller without a window")
return
}
guard window.isKeyWindow else {
print("Attempt to present alert on window that is not the key window")
return
}
// Present alert
关于ios - UIAlertControllerAnimatedTransitioning 内部崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49416200/
我从以下方法中抛出的异常中获取崩溃报告: -[_UIAlertControllerAnimatedTransitioning _animateTransition:completionBlock:]
我是一名优秀的程序员,十分优秀!