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

113

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

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

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

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

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

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

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

mac_eric
источник
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

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

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

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

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

sRoy
источник
3
Я тестировал с установленной и снятой опцией «Скрыть строку состояния». Ни одна из опций не предотвратила появление сообщения «Строка состояния не удалось найти кэшируемое…», которое появлялось снова каждые две минуты.
mac_eric
Вы проверяли info.plist, добавлено ли что-нибудь, связанное со строкой состояния?
sRoy
В info.plist нет ничего, связанного со строкой состояния. Я использую строку состояния по умолчанию.
mac_eric 07
Не могли бы вы поделиться, версией xcode и устройством, на котором вы это получаете? А также поддерживает ли ваше приложение альбомную ориентацию?
sRoy
4
Спасибо! Это сработало для меня, на самом деле, сначала он не был отмечен, я проверил его и запустил, а затем снова снял флажок, и он сработал
Саид Ир
1

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

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

renderPassDescriptor.colorAttachments[0].loadAction = .load

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

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

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

PeterT
источник
Конечно, ты не сможешь это исправить. У вас есть металлическое состояние. У 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