gpt4 book ai didi

ios - 约束导致的崩溃

转载 作者:行者123 更新时间:2023-11-28 11:36:32 25 4
gpt4 key购买 nike

我已经通过 UIViewController 中的代码添加了约束。我还尽可能将 translatesAutoresizingMaskIntoConstraints 设置为 false。尽管如此,由于内部一致性,该应用程序仍会崩溃并显示异常。

这里是设计和添加导致异常的约束的代码:

head = UIView.init()
head?.backgroundColor = UIColor.cyan
self.view.addSubview(head!)

self.view.translatesAutoresizingMaskIntoConstraints = false
head?.translatesAutoresizingMaskIntoConstraints = false

head?.leadingAnchor.constraint(equalTo: self.view.layoutMarginsGuide.leadingAnchor).isActive = true
head?.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor).isActive = true
head?.trailingAnchor.constraint(equalTo: self.view.layoutMarginsGuide.trailingAnchor).isActive = true
head?.heightAnchor.constraint(equalToConstant: 44).isActive = true

我没有使用任何 Storyboard,因此在 Xcode 项目的一般设置中将主界面变为空白。带有调用堆栈的完整崩溃日志 --->

 2019-03-13 11:44:09.032181+0530 codeUIDesign[2645:107166] *** Assertion failure in -[UIView _nsis_center:bounds:inEngine:forLayoutGuide:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore_Sim/UIKit-3698.93.8/NSLayoutConstraint_UIKitAdditions.m:3588
2019-03-13 11:44:09.037194+0530 codeUIDesign[2645:107166] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error in compatibility flow'
*** First throw call stack:
(
0 CoreFoundation 0x00000001119e41bb __exceptionPreprocess + 331
1 libobjc.A.dylib 0x0000000110027735 objc_exception_throw + 48
2 CoreFoundation 0x00000001119e3f42 +[NSException raise:format:arguments:] + 98
3 Foundation 0x000000010fa2a877 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 194
4 UIKitCore 0x000000011478a35b -[UIView(AdditionalLayoutSupport) _nsis_center:bounds:inEngine:forLayoutGuide:] + 2454
5 UIKitCore 0x0000000114798ee9 -[UILayoutGuide _updateLayoutFrameInOwningView:fromEngine:] + 74
6 UIKitCore 0x0000000114788c5a -[UIView(AdditionalLayoutSupport) _is_layout] + 376
7 UIKitCore 0x0000000114843c66 -[UIView(Hierarchy) _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] + 1002
8 UIKitCore 0x0000000114858795 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1441
9 QuartzCore 0x0000000115de0b19 -[CALayer layoutSublayers] + 175
10 QuartzCore 0x0000000115de59d3 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 395
11 QuartzCore 0x0000000115de0a40 -[CALayer layoutIfNeeded] + 187
12 UIKitCore 0x0000000113d70ed4 -[UIViewController window:willAnimateRotationToInterfaceOrientation:duration:] + 658
13 UIKitCore 0x00000001143b465f -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 5605
14 UIKitCore 0x00000001143b21c7 -[UIWindow _setRotatableViewOrientation:updateStatusBar:duration:force:] + 123
15 UIKitCore 0x00000001143a7514 -[UIWindow _setHidden:forced:] + 716
16 UIKitCore 0x00000001143ba5c0 -[UIWindow makeKeyAndVisible] + 42
17 codeUIDesign 0x000000010f7000c8 $S12codeUIDesign11AppDelegateC11application_29didFinishLaunchingWithOptionsSbSo13UIApplicationC_SDySo0k6LaunchJ3KeyaypGSgtF + 1128
18 codeUIDesign 0x000000010f7002c4 $S12codeUIDesign11AppDelegateC11application_29didFinishLaunchingWithOptionsSbSo13UIApplicationC_SDySo0k6LaunchJ3KeyaypGSgtFTo + 228
19 UIKitCore 0x0000000114365bde -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 280
20 UIKitCore 0x00000001143675cb -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 3979
21 UIKitCore 0x000000011436cc2f -[UIApplication _runWithMainScene:transitionContext:completion:] + 1623
22 UIKitCore 0x0000000113b8b4e9 __111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke + 866
23 UIKitCore 0x0000000113b9429c +[_UICanvas _enqueuePostSettingUpdateTransactionBlock:] + 153
24 UIKitCore 0x0000000113b8b126 -[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:] + 233
25 UIKitCore 0x0000000113b8bae0 -[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] + 1085
26 UIKitCore 0x0000000113b89cb5 __82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke + 795
27 UIKitCore 0x0000000113b8995f -[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] + 435
28 UIKitCore 0x0000000113b8ea90 __125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke + 584
29 UIKitCore 0x0000000113b8f80e _performActionsWithDelayForTransitionContext + 100
30 UIKitCore 0x0000000113b8e7ef -[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] + 221
31 UIKitCore 0x0000000113b9393a -[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] + 392
32 UIKitCore 0x000000011436b44e -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 515
33 UIKitCore 0x0000000113f0fd09 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 357
34 FrontBoardServices 0x000000011cb602da -[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 448
35 FrontBoardServices 0x000000011cb6b443 __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 271
36 FrontBoardServices 0x000000011cb6ab3a __40-[FBSWorkspace _performDelegateCallOut:]_block_invoke + 53
37 libdispatch.dylib 0x0000000112e07602 _dispatch_client_callout + 8
38 libdispatch.dylib 0x0000000112e0ab78 _dispatch_block_invoke_direct + 301
39 FrontBoardServices 0x000000011cb9fba8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 30
40 FrontBoardServices 0x000000011cb9f860 -[FBSSerialQueue _performNext] + 457
41 FrontBoardServices 0x000000011cb9fe40 -[FBSSerialQueue _performNextFromRunLoopSource] + 45
42 CoreFoundation 0x0000000111949721 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
43 CoreFoundation 0x0000000111948f93 __CFRunLoopDoSources0 + 243
44 CoreFoundation 0x000000011194363f __CFRunLoopRun + 1263
45 CoreFoundation 0x0000000111942e11 CFRunLoopRunSpecific + 625
46 GraphicsServices 0x00000001185541dd GSEventRunModal + 62
47 UIKitCore 0x000000011436e81d UIApplicationMain + 140
48 codeUIDesign 0x000000010f7009c7 main + 71
49 libdyld.dylib 0x0000000112e7d575 start + 1
50 ??? 0x0000000000000001 0x0 + 1
)

我尝试了我在 XCode 版本 10.0 (10A255) 中发布的相同代码,它工作正常但在 XCode 版本 10.1 (10B61) 中显示崩溃。

最佳答案

您需要为 head View 添加:

head.translatesAutoresizingMaskIntoConstraints = false

然后删除这个:

self.view.translatesAutoresizingMaskIntoConstraints = false

所以你的代码看起来像这样:

let head = UIView()
head.backgroundColor = UIColor.cyan
self.view.addSubview(head)

// This new line added
head.translatesAutoresizingMaskIntoConstraints = false

head.leadingAnchor.constraint(equalTo: self.view.layoutMarginsGuide.leadingAnchor).isActive = true
head.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor).isActive = true
head.trailingAnchor.constraint(equalTo: self.view.layoutMarginsGuide.trailingAnchor).isActive = true
head.heightAnchor.constraint(equalToConstant: 44).isActive = true

关于ios - 约束导致的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55135605/

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