状态栏找不到缓存的时间字符串图像。正在渲染

Status bar could not find cached time string image. Rendering in-process

我升级到 Swift4.1 和 Xcode 9.3 后收到上述运行时消息。在升级之前,我的控制台中没有此消息 window。

Status bar could not find cached time string image. Rendering in-process.

只要我有应用 运行,每隔几分钟就会出现一次。

在我看来没有负面影响,我的应用程序是 运行,像往常一样,我没有发现任何问题。

我用的是标准的状态栏,没怎么修改过。

问题 1:在我还没有遇到的情况下,是否会出现此警告引起的问题?

问题 2:有谁知道我怎样才能摆脱这个警告?

我也遇到了同样的问题。为了克服这个问题,我这样做了

转到目标 -> 部署信息 -> 未选中 'Hide status bar'

这个解决了我的问题。 对我来说,这是 'Deployment Info' 设置。

通过检查 Target-> Deployment Info.

中的 "Requires Full Screen",我能够摆脱这个警告

选中此选项可能会对 iPad 产生一些副作用,因此您应该考虑到这一点。

我也看到此警告出现,在回答问题 1 时,我也看到与之相关的潜在非常讨厌的行为。

运行 类似于基本示例动画三角形 Metal 应用程序,但

renderPassDescriptor.colorAttachments[0].loadAction = .load

这样帧就不会在每一帧都被清除。似乎正在发生的是,每隔一次记录警告消息时,iOS 也会混淆其图形状态管理的某些部分,因此我目睹了图像部分的剧烈闪烁(然后又消失了稍后)。

这种情况出现在 'real' 应用中的可能性有多大我不确定,但这绝对不是您希望用户最终看到的东西。

到目前为止我还没有解决这个问题; 'Hide status bar' 和 'Requires full screen' 设置没有帮助。

此 bug/debug 说明存在于与 Xcode 9.3+

捆绑的 iOS SDK 中

更新: 已在 Xcode 9.4.1 (9F2000)
中修复 更新:not 已在 Xcode 10 (10A255)
中修复 更新:在Xcode 11 beta

中修复

我认为您可以放心地忽略它。 iOS/macOS 的新版本有时包含信息性调试消息,它们通常会在下一个版本中删除。

在我的例子中,

隐藏了导航

self.navigationController?.isNavigationBarHidden = false

当您隐藏导航栏时,它也会隐藏状态栏!。只需使用

self.navigationController?.navigationBar.isHidden = true

相反。您将恢复状态栏。

根据 PeterT 对问题 1 的回答来回答问题 2: 不仅你不能摆脱这个警告,而且你不能,因为它意味着潜在的问题是任何问题,但不是良性的。至少在某些 场景。

这也意味着DEC Field Circus Engineer舞蹈 交换项目元信息中平坦的轮子 会让你看起来像个小丑。