微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

应用程序关闭时出现奇怪的错误消息:“CALayer 位置包含 NaN:[nan nan]”

如何解决应用程序关闭时出现奇怪的错误消息:“CALayer 位置包含 NaN:[nan nan]”

当我在物理设备上关闭我的应用程序时,我遇到了一条奇怪的错误消息。我在模拟器中做了同样的事情,但没有发生这样的事情。

还尝试设置“在事件引发时”断点,但 XCode 显示“无法在 0x1b3a7edd0 处为断点 4.2 设置断点站点:”

对可能导致这种情况的原因有任何想法吗?

2021-04-08 20:40:15.985908+0200 GoMom[21503:2008470] [SwiftUI] Invalid frame dimension (negative or non-finite).
2021-04-08 20:40:15.986074+0200 GoMom[21503:2008470] [SwiftUI] Invalid frame dimension (negative or non-finite).
2021-04-08 20:40:15.990231+0200 GoMom[21503:2008470] *** Terminating app due to uncaught exception 'CALayerInvalidGeometry',reason: 'CALayer position contains NaN: [nan nan]. Layer: <CALayer:0x2824151a0; position = CGPoint (2 8); bounds = CGRect (0 0; 595 4); delegate = <UIView: 0x114d07cc0; frame = (2 8; 595 4); anchorPoint = (0,0); autoresizesSubviews = NO; layer = <CALayer: 0x2824151a0>>; opaque = YES; allowsGroupOpacity = YES; anchorPoint = CGPoint (0 0); _swiftUI_displayListID = 1469; backgroundColor = <CGColor 0x2800f2220> [<CGColorSpace 0x2800ed200> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; sRGB IEC61966-2.1; extended range)] ( 1 1 1 0.232 )>'
*** First throw call stack:
(0x19e95d86c 0x1b3976c50 0x19e8564a4 0x1a1d85db4 0x1a1d85ce4 0x1a55f5378 0x1a58f1e38 0x1a58efb78 0x1a58eea8c 0x1a56585f0 0x1a53b09d0 0x1a5658158 0x1a5657f0c 0x1a565793c 0x1a5657f2c 0x1a565793c 0x1a5657f2c 0x1a565793c 0x1a56576d0 0x1a5657580 0x1a57167f4 0x1a52ca0ac 0x1a5868434 0x1a585e2c8 0x1a59e8f90 0x1a59e8fc4 0x1a185fec4 0x1a1d7a644 0x1a1d7ab18 0x1a1d8f30c 0x1a1cd4640 0x1a1cffb08 0x1a1d00e98 0x19e8d8358 0x19e8d25c4 0x19e8d2b74 0x19e8d221c 0x1b649c784 0x1a1312ee8 0x1a131875c 0x1003c93ac 0x19e5926b0)
libc++abi.dylib: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'CALayerInvalidGeometry',0); autoresizesSubviews = NO; layer = <CALayer: 0x2824151a0>>; opaque = YES; allowsGroupOpacity = YES; anchorPoint = CGPoint (0 0); _swiftUI_displayListID = 1469; backgroundColor = <CGColor 0x2800f2220> [<CGColorSpace 0x2800ed200> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; sRGB IEC61966-2.1; extended range)] ( 1 1 1 0.232 )>'
terminating with uncaught exception of type NSException
warning: Failed to set breakpoint site at 0x1b3976c14 for breakpoint 2.1: error sending the breakpoint request
warning: Failed to set breakpoint site at 0x1b3976c14 for breakpoint 3.1: error sending the breakpoint request
warning: Failed to set breakpoint site at 0x1b3976c14 for breakpoint 4.1: error sending the breakpoint request
warning: Failed to set breakpoint site at 0x1b3a7edd0 for breakpoint 4.2: error sending the breakpoint request

解决方法

有两种可能

首先,您在错误的框架方法中使用了 .infinity

.frame(width: .infinity,height: .infinity,alignment: .center)

此方法需要一个有限值。

您只能在 max.... 参数之一中使用它。

 .frame(minWidth: 0,idealWidth: 100,maxWidth: .infinity,minHeight: 0,idealHeight: 100,maxHeight: .infinity,alignment: .center)

其次,您正在一个框架中进行计算,结果为负值。

.frame(width: geo.size.width - 10,height: 100,alignment: .center)

使结果为负的 - 10

如果没有 Minimal Reproducible Example,就不可能准确地告诉您问题出在哪里,但这应该会让您接近。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。