Если вам нужно исправить это, используйте Siri или Mac с помощью iMessage, чтобы отправить себе новое сообщение. См. Https://support.apple.com/en-us/HT204897.
Это трехэтапная процедура для восстановления, и в будущем обновлении программного обеспечения будет исправлена эта ошибка.
- Попросите Сири «прочитать непрочитанные сообщения».
- Используйте Siri, чтобы ответить на вредоносное сообщение. После того, как вы ответите, вы сможете снова открыть Сообщения.
- Если проблема не устранена, нажмите и удерживайте вредоносное сообщение, нажмите Дополнительно и удалите сообщение из цепочки.
Что касается того, почему это происходит, то это особая ошибка в способе, которым Notification Center отображает Unicode-содержимое этого сообщения. Код выполняет «небезопасную» операцию (что-то вроде 5, деленное на 0 и затем не проверяет неожиданные результаты), которая вызывает необработанную ошибку.
Тогда, так как Центр уведомлений не может визуализировать блок текста и в конечном итоге вылетает Springboard, у которого не было кода для корректной обработки этого сбоя. Когда нет определенного обработчика ошибок, большинство операций имеют отказоустойчивый «перезагрузить себя», чтобы попытаться исправить ошибку.
Юникод - это способ кодирования символов, используемый для обработки языков с большим количеством символов, чем английский. У программистов могут быть проблемы с этим, потому что они научились программировать, используя текст ASCII, и они пренебрегают написанием своего программного обеспечения с полной поддержкой Unicode.
Одна хорошая статья об этом объясняет, что «если вы все еще программируете таким образом, вы не намного лучше, чем врач, который не верит в микробы».
Эта другая статья хорошо объясняет эту конкретную ситуацию.
Apple может либо проводить более строгие проверки кода, проводить специальные модульные тесты или позволить конечным пользователям выполнять тестирование кода, как в этом и аналогичных случаях .