点击uitextfield时显示键盘。一旦键盘出现,它就可以正常工作。我可以将键盘更改为除表情符号键盘以外的任何其他键盘。每次尝试切换到表情符号键盘时,它都会崩溃。
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
答案 0 :(得分:1)
如果使用类似UserDefaults.standard.set("en_US", forKey: "AppleLanguages")
的名称,请确保设置一个数组,而不只是一个字符串。您应该改为使用UserDefaults.standard.set(["en_US"], forKey: "AppleLanguages")
。
如果设置一个字符串,它可以对NSLocale对象做一些奇怪的事情,有效地导致依赖它的任何东西崩溃。 Emoji键盘就是其中之一,因为所有字符都有一个本地化的备用名称,该名称在运行时使用用户设备的Locale进行抓取。
另一方面,建议您不要使用语言设置,而应使用本地化工具,除非您认为用例非常具体。
答案 1 :(得分:0)