Helo 在 xcode 中的调试器上,使用 swift 和 swiftUI 5
Posted
技术标签:
【中文标题】Helo 在 xcode 中的调试器上,使用 swift 和 swiftUI 5【英文标题】:Helo on debugger in xcode, using swift and swiftUI 5 【发布时间】:2021-10-28 08:56:12 【问题描述】:嗨
所以在对调试器进行了一些研究之后,我仍然不知道它是如何工作的:
2021-08-29 05:04:47.699766+0200 TestbaseThemed[7017:392999] [LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<NSLayoutConstraint:0x6000032c2b70 'BIB_Trailing_CB_Leading' H:[_UIModernBarButton:0x7f9861d13590]-(6)-[_UIModernBarButton:0x7f9861d10e60'Theme'd'] (active)>",
"<NSLayoutConstraint:0x6000032c2bc0 'CB_Trailing_Trailing' _UIModernBarButton:0x7f9861d10e60'Theme'd'.trailing <= _UIButtonBarButton:0x7f9861d10770.trailing (active)>",
"<NSLayoutConstraint:0x6000032c39d0 'UINav_static_button_horiz_position' _UIModernBarButton:0x7f9861d13590.leading == UILayoutGuide:0x6000028e0b60'UIViewLayoutMarginsGuide'.leading (active)>",
"<NSLayoutConstraint:0x6000032c3a20 'UINavItemContentGuide-leading' H:[_UIButtonBarButton:0x7f9861d10770]-(0)-[UILayoutGuide:0x6000028e0a80'UINavigationBarItemContentLayoutGuide'] (active)>",
"<NSLayoutConstraint:0x6000032c8eb0 'UINavItemContentGuide-trailing' UILayoutGuide:0x6000028e0a80'UINavigationBarItemContentLayoutGuide'.trailing == _UINavigationBarContentView:0x7f9863811270.trailing (active)>",
"<NSLayoutConstraint:0x6000032c40a0 'UIView-Encapsulated-Layout-Width' _UINavigationBarContentView:0x7f9863811270.width == 0 (active)>",
"<NSLayoutConstraint:0x6000032c9270 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x6000028e0b60'UIViewLayoutMarginsGuide'](LTR) (active, names: '|':_UINavigationBarContentView:0x7f9863811270 )>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x6000032c2b70 'BIB_Trailing_CB_Leading' H:[_UIModernBarButton:0x7f9861d13590]-(6)-[_UIModernBarButton:0x7f9861d10e60'Theme'd'] (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
我目前正在尝试调试,它有点搞砸了我的程序。在它没有引起任何问题之前,因为我没有在程序午餐前加载东西 但是现在,它给我带来了麻烦,因为一旦出现错误,func 就会停止运行,并且它不会加载它应该加载的其余部分
我也想在做任何其他事情之前等待函数完成,但我不知道该怎么做 所以我想我将不得不处理调试
提前感谢您的回答!
(所以,幸运的是我发现了错误,但我不知道为什么会这样: .navigationTitle("主题") .navigationBarTitleDisplayMode(.large) ) 我很幸运
【问题讨论】:
如果你看到一些NSLayoutConstraint
违反了你没有创建的,例如在使用SwiftUI时,你可以忽略它:这不是你的错。
哦,看来这不是我的错
【参考方案1】:
一般来说,其中一项约束不够灵活,无法帮助根据屏幕尺寸调整大小。
例如,如果您有一个宽度应该为 200 并且左右边距为 0 的视图。除非设备宽度为 200,否则这三个不能同时实现。
我提到的上述示例的解决方案将是以下之一 -
-
删除其中一项约束。
将约束之一设为大于/小于。
降低其中一项约束的优先级。
结果将是视图将向左或向右移动并具有 200 宽度,或者它将具有 0 边距和灵活宽度。
【讨论】:
所以我猜UINavigationBarContentView
= .navigationTitle("Theme'd") 我怎样才能删除宽度限制?以上是关于Helo 在 xcode 中的调试器上,使用 swift 和 swiftUI 5的主要内容,如果未能解决你的问题,请参考以下文章
视图模型数组上的 ForEach 循环问题导致 Xcode 编译错误 - SwiftUI