iOS Crash: нажатие на глобус на клавиатуре для перехода к клавиатуре Emoji приводит к сбою - PullRequest
0 голосов
/ 14 февраля 2019

Проблема

Клавиатура отображается при нажатии на поле uitext.Как только клавиатура появляется, она работает нормально.Я могу заменить клавиатуру практически на любую клавиатуру, кроме клавиатуры Emoji.Каждый раз, когда он пытается переключиться на клавиатуру Emoji, происходит сбой.

Это журнал сбоя

2019-02-13 17:19:01.775380-0500 xxxxxxxx[56054:2366411] libMobileGestalt MobileGestalt.c:1645: Could not retrieve region info
2019-02-13 17:19:01.775648-0500 xxxxxxx56054:2366411] -[NSTaggedPointerString count]: unrecognized selector sent to instance 0xb424b425bd6497ae
2019-02-13 17:19:01.788405-0500 xxxxxxxx[56054:2366411] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSTaggedPointerString count]: unrecognized selector sent to instance 0xb424b425bd6497ae'
*** First throw call stack:
(
    0   CoreFoundation                      0x00000001126831bb __exceptionPreprocess + 331
    1   libobjc.A.dylib                     0x0000000111c21735 objc_exception_throw + 48
    2   CoreFoundation                      0x00000001126a1f44 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    3   CoreFoundation                      0x0000000112687ed6 ___forwarding___ + 1446
    4   CoreFoundation                      0x0000000112689da8 _CF_forwarding_prep_0 + 120
    5   CoreFoundation                      0x00000001125b6d38 CFLocaleCopyDisplayNameForPropertyValue + 1000

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Если вы используете что-то вроде UserDefaults.standard.set("en_US", forKey: "AppleLanguages"), убедитесь, что вы установили массив, а не просто строку.Вместо этого у вас должно быть UserDefaults.standard.set(["en_US"], forKey: "AppleLanguages").

Если вы установите строку, она может делать странные вещи с объектом NSLocale, эффективно вызывая сбои на всем, на что полагается.Клавиатура Emoji - одна из этих вещей, поскольку у всех персонажей есть локализованное альтернативное имя, захваченное во время выполнения с помощью локали устройства пользователя.

В дополнение к этому не рекомендуется играть с настройками языковвместо этого используйте инструменты локализации, если только вы не считаете, что ваш вариант использования очень специфичен.

0 голосов
/ 14 февраля 2019

enter image description here проверьте, выключен ли параметр «Использовать базовую интернационализацию», включите его, очистите проект и запустите.

...