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

在升级到 Swift4.1和 Xcode 9.3之后,我得到了上面的运行时消息。在升级之前,我的控制台窗口中没有这条消息。

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

每隔几分钟就会出现一次,只要我的应用程序还在运行。

它看到我没有负面的副作用,我的应用程序正在运行,像往常一样,我没有看到任何问题。

我使用的是标准状态栏,没有任何修改以任何方式修改它。

问题1: 在我还没有遇到的情况下,这个警告是否会产生问题?

问题2: 有人知道如何摆脱这个警告吗?

37421 次浏览

Same issue was occurring for me too. To overcome this, I did this

Goto Target -> Deployment Info -> Unchecked 'Hide status bar'

This one resolved my issue. For me, this was the 'Deployment Info' setup.

enter image description here

I was able to get rid of this warning, by checking the "Requires Full Screen" in Target-> Deployment Info.

Checking this option may have some side-effects in iPad, so you should do it having this in mind.

I am also seeing this warning appear, and in answer to Question 1, I am also seeing potentially very nasty behaviour associated with it.

Running something close to a basic sample animated triangle Metal app, but with

renderPassDescriptor.colorAttachments[0].loadAction = .load

such that the frame isn't cleared every frame. What seems to be happening is that every other time the warning message is logged, iOS also gets some part of its management of graphics state confused so that I witness a violent flashing of parts of the image (which then goes away again later).

How likely this situation would be to emerge in a 'real' app I'm not sure, but it's definitely not something you want users to end up seeing.

I haven't fixed the problem here thus far; 'Hide status bar' and 'Requires full screen' settings don't help.

This bug/debug note is present in iOS SDK bundled with Xcode 9.3+

Update: not fixed in Xcode 9.4.1 (9F2000)
Update: not fixed in Xcode 10 (10A255)
Update: not fixed in Xcode 11 betas

I think you can safely ignore it. New versions of iOS/macOS sometimes contain informational debugging messages, and they generally get removed at the next release.

In my case, it was hiding navigation bare by

self.navigationController?.isNavigationBarHidden = false

When you are hiding the navigation bar, it hides status bar too!. just use

self.navigationController?.navigationBar.isHidden = true

instead. And you will have your status bar back.

To answer Question 2 drawing upon PeterT answer that addresses Question 1: not only you can not get rid of this warning, but you mustn't, cause it means that the underlying problem is anything, but benign. At least in some scenarious.

This also means that the DEC Field Circus Engineer dance swapping the wheels that flat in meta info for the project would rightfully make you look like a clown.