gpt4 book ai didi

ios - 禁用自动布局的 iOS 9 上的自动布局崩溃

转载 作者:可可西里 更新时间:2023-11-01 04:50:29 41 4
gpt4 key购买 nike

我知道这是一个普遍的问题,但我希望有类似经历的人可能知道可能发生的事情。

我在我们的 iPad-only 应用程序中遇到仅在 iOS 9 上发生的崩溃。它说 NSInternalInconsistencyException

它出现在纵向和横向模式,以及许多代 iPad(iPad 2、iPad Pro、iPad 4 等)上。

我没有在项目的任何地方启用自动布局,但它看起来像是一个自动布局问题。

它很难复制,所以我无法在 Xcode 上对其进行调试,但我看到了有关崩溃分析服务“Crashlytics”的报告。这是来自 Crashlytics 的堆栈跟踪:

Auto layout internal error. Cannot find an outgoing row 
head for incoming head <unknown var (bug!) with engine as delegate[...]

Thread : Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x23d4568b __exceptionPreprocess
1 libobjc.A.dylib 0x356c2e17 objc_exception_throw
2 CoreFoundation 0x23d455d1 -[NSException initWithCoder:]
3 Foundation 0x24a873b3 -[NSISEngine minimizeConstantInObjectiveRowWithHead:]
4 Foundation 0x24a86e4d -[NSISEngine optimize]
5 Foundation 0x24a82a53 -[NSISEngine withBehaviors:performModifications:]
6 UIKit 0x27e040bb -[UIView(Hierarchy) _postMovedFromSuperview:]
7 UIKit 0x280fb227 __UIViewWasRemovedFromSuperview
8 UIKit 0x27e02ddb -[UIView(Hierarchy) removeFromSuperview]
9 UIKit 0x282e5fa9 -[UIKeyboardPredictionView setPredictionViewState:animate:notify:]
10 UIKit 0x281e3787 -[UIKeyboardImpl updatePredictionView]
11 UIKit 0x27f155e3 -[UIKeyboardImpl finishLayoutChangeWithArguments:]
12 UIKit 0x27e31437 -[UIKeyboardImpl updateLayout]
13 UIKit 0x27e36077 -[UIKeyboardImpl setDelegate:force:]
14 UIKit 0x27e2f6e1 -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:]
15 UIKit 0x27e2f20d -[UIResponder(UIResponderInputViewAdditions) reloadInputViews]
16 UIKit 0x27e8d853 -[UIResponder becomeFirstResponder]
17 UIKit 0x27e8db6d -[UIView(Hierarchy) becomeFirstResponder]
18 UIKit 0x27f12289 -[UITextField becomeFirstResponder]
19 UIKit 0x27fbe69f -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary]
20 UIKit 0x27fbdc75 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:]
21 UIKit 0x28334e27 _UIGestureRecognizerSendTargetActions
22 UIKit 0x27fa2303 _UIGestureRecognizerSendActions
23 UIKit 0x27e3a7af -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:]
24 UIKit 0x28335f2f ___UIGestureRecognizerUpdate_block_invoke809
25 UIKit 0x27dfc287 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks
26 UIKit 0x27df9e77 _UIGestureRecognizerUpdate
27 UIKit 0x27e386f9 -[UIWindow _sendGesturesForEvent:]
28 UIKit 0x27e37e43 -[UIWindow sendEvent:]
29 UIKit 0x27e097e5 -[UIApplication sendEvent:]
30 UIKit 0x27e07fdf _UIApplicationHandleEventQueue
31 CoreFoundation 0x23d08c3f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
32 CoreFoundation 0x23d0882d __CFRunLoopDoSources0
33 CoreFoundation 0x23d06b9b __CFRunLoopRun
34 CoreFoundation 0x23c5a249 CFRunLoopRunSpecific
35 CoreFoundation 0x23c5a035 CFRunLoopRunInMode
36 GraphicsServices 0x2cd24ad1 GSEventRunModal
37 UIKit 0x27e6f899 UIApplicationMain
38 Mr Appliance 0xcda7b main (main.m:16)
39 libdyld.dylib 0x35e0e873 start

问题是我不知道代码中的什么地方发生了这种情况。堆栈跟踪不显示代码中发生崩溃的位置。它只说 ma​​in.m line 16return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

最佳答案

main.m 中的那一行是您的程序开始运行的地方,而不是发生错误的地方。在所有其他项目发生后,异常会在列表顶部的#1 处抛出。问题介于两者之间。

从其父 View 中删除某些 View 后出现异常,它确实显示 NSISEngine 错误,表明可能为某些 XIB 或 Storyboard打开了 AutoLayout - 或者 iOS 正在内部使用 AutoLayout 来处理新布局的排列。

This answer具有几乎相同的堆栈跟踪并指出使用不正确的手势方法来处理 firstResponder 更改和关闭键盘的问题。如果您正在做类似的事情(关闭某些 View ,编辑 UITableView?),也许是错误的方法指向了一个不存在的委托(delegate)?

https://stackoverflow.com/questions/33800918/uitextfield-becomefirstresponder-crashes-the-ios-app-randomly

关于ios - 禁用自动布局的 iOS 9 上的自动布局崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35560034/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com