Строке состояния не удалось найти кэшированное изображение строки времени. Визуализация в процессе


113

Я получаю указанное выше сообщение во время выполнения после обновления до Swift4.1 и Xcode 9.3. До обновления у меня не было этого сообщения в окне консоли.

Строке состояния не удалось найти кэшированное изображение строки времени. Рендеринг в процессе.

появляется каждые несколько минут, пока у меня запущено приложение.

Он следит за отсутствием побочных эффектов, мое приложение работает, как обычно, я не заметил никаких проблем.

Использую стандартную строку состояния, не менял никак ее модифицировать.

Вопрос 1: Возникнет ли проблема из-за этого предупреждения в ситуациях, с которыми я еще не сталкивался?

Вопрос 2: Кто-нибудь знает, как я могу избавиться от этого предупреждения?


1
Странный. Я тоже получаю это после обновления моего тестового устройства до iOS 11.3 и Xcode 9.3
Sudara

Я тоже получаю это, пока кажется безвредным.
Gereon

1
Это происходит раз в минуту (по крайней мере, для меня) сразу после того, как время переходит в новую минуту.
Саймон Дженкинс

1
То же самое со мной;) с Xcode 9.3 и Swift 4.1
Нико Клауснитцер

1
Я запускаю свое приложение на устройстве (iPhone 6 объемом 16 ГБ доступно 5,48 ГБ), и я также видел это предупреждение, но когда я получил это сообщение в журнале консоли Xcode, мое приложение зависло.
Ravi Raja Jangid

Ответы:


94

Это сообщение об ошибке / отладке присутствует в iOS SDK в комплекте с Xcode 9.3+.

Обновление: не исправлено в Xcode 9.4.1 (9F2000)
Обновление: не исправлено в Xcode 10 (10A255)
Обновление: не исправлено в бета- версиях Xcode 11

Думаю, можно спокойно игнорировать это. Новые версии iOS / macOS иногда содержат информационные отладочные сообщения и обычно удаляются в следующем выпуске.


5
Буду ждать стабильного релиза - по крайней мере, мы с этим разобрались окончательно. Спасибо за предупреждение.
mac_eric

9
Эта ошибка НЕ ​​исправлена ​​в выпуске 9.4 (9F1027a)
Адам

3
Не исправлено в версии 9.4.1 (9F2000)
Daniel Springer

Комментарий @ LalKrishna неточен. Только что протестировано с XCode 9.4.1 на iOS 11.3.1 и 11.4, это произошло на обоих. По крайней мере, при использовании физического iPhone 6
Джейк Т.

1
Я давно проголосовал за. Но сейчас я пересматриваю.
Антон Тропашко

13

Та же проблема возникла и у меня. Чтобы преодолеть это, я сделал это

Перейти к цели -> Информация о развертывании -> Снятый флажок Скрыть строку состояния

Это решило мою проблему. Для меня это была настройка «Информация о развертывании».

введите описание изображения здесь


3
Я тестировал с установленной и снятой опцией «Скрыть строку состояния». Ни одна из опций не предотвратила появление сообщения «Строка состояния не удалось найти кэшируемое…», которое появлялось снова каждые две минуты.
mac_eric

Вы проверяли info.plist, добавлено ли что-нибудь, связанное со строкой состояния?
sRoy

В info.plist нет ничего, связанного со строкой состояния. Я использую строку состояния по умолчанию.
mac_eric 07

Не могли бы вы поделиться, версией xcode и устройством, на котором вы это получаете? А также поддерживает ли ваше приложение альбомную ориентацию?
sRoy

4
Спасибо! Это сработало для меня, на самом деле, сначала он не был отмечен, я проверил его и запустил, а затем снова снял флажок, и он сработал
Саид Ир

1

Я также вижу это предупреждение, и, отвечая на вопрос 1, я также вижу потенциально очень неприятное поведение, связанное с ним.

Запуск чего-то близкого к основному образцу анимированного треугольного приложения Metal, но с

renderPassDescriptor.colorAttachments[0].loadAction = .load

так что кадр не очищается каждый кадр. Кажется, что происходит то, что каждый раз, когда предупреждающее сообщение регистрируется, iOS также сбивает с толку некоторую часть своего управления состоянием графики, так что я наблюдаю резкое мигание частей изображения (которое затем снова исчезает).

Я не уверен, насколько вероятна такая ситуация в «реальном» приложении, но это определенно не то, что вы хотите, чтобы пользователи увидели.

Я пока не исправил здесь проблему; Настройки «Скрыть строку состояния» и «Требуется полноэкранный режим» не помогают.


Конечно, ты не сможешь это исправить. У вас есть металлическое состояние. У Apple есть состояние GLES для рендеринга строки состояния, и эти два элемента явно сталкиваются. Сообщите им об ошибке, предоставив образец приложения, чтобы помочь им разобраться в этом в реальном случае. Это может не всплыть с такими пользователями ванильного uikit, как я.
Антон Тропашко

1

В моем случае он скрывал навигацию без

self.navigationController?.isNavigationBarHidden = false

Когда вы скрываете панель навигации, она также скрывает строку состояния !. просто используйте

self.navigationController?.navigationBar.isHidden = true

вместо. И к вам вернется строка состояния.


Почему у первой строчки = falseи у второй = true? Вы пытаетесь сбить читателя с толку или в этом есть цель. (Если цели нет, исправьте и напишите trueили falseв обеих строках.)
значение имеет значение

0

Чтобы ответить на вопрос 2, опираясь на ответ PeterT, который касается вопроса 1: вы не только не можете избавиться от этого предупреждения, но и не должны , потому что это означает, что основная проблема является любой, но легкой. По крайней мере, в некоторых сценариях.

Это также означает, что танец инженеров DEC Field Circus Engineer, поменявший местами колеса в метаинформации для проекта, по праву сделает вас похожим на клоуна.


-1

Мне удалось избавиться от этого предупреждения, установив флажок «Требуется полноэкранный режим» в Target-> Deployment Info .

Выбор этой опции может иметь некоторые побочные эффекты в iPad, поэтому вам следует помнить об этом.


1
Я использую «Требуется полноэкранный режим», но сообщение все еще появляется
mac_eric
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.