环境:
iPhone模拟器或硬件。
Xcode 8.3.3
部署目标8.0,
迅速
找不到支持键盘iPhone-PortraitChoco-Emoji类型7的键盘。使用2383677590_PortraitChoco_iPhone-Emoji-Keyboard_字母
[NSTaggedPointerString count]:无法识别的选择器已发送到实例0xa000000000073652
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[NSTaggedPointerString count]:无法识别的选择器已发送到实例0xa000000000073652'
第一个调用堆栈:
0 CoreFoundation 0x0000000110461b0b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010f4e9141 objc_exception_throw + 48
2 CoreFoundation 0x00000001104d1134 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x00000001103e8840 ___forwarding___ + 1024
4 CoreFoundation 0x00000001103e83b8 _CF_forwarding_prep_0 + 120
5 CoreFoundation 0x00000001103b403f CFLocaleCopyDisplayNameForPropertyValue + 863
6 CoreFoundation 0x00000001103b3ccf -[__NSCFLocale displayNameForKey:value:] + 15
7 EmojiFoundation 0x000000012419fdbf +[EMFEmojiCategory computeEmojiFlagsSortedByLanguage] + 712
8 EmojiFoundation 0x00000001241979a6 +[EMFEmojiPreferences _cachedFlagCategoryEmoji:] + 256
9 EmojiFoundation 0x000000012419f922 +[EMFEmojiCategory _emojiSetForIdentifier:] + 351
10 UIKit 0x00000001121763bc +[UIKeyboardEmojiCategory categoryForType:] + 159
11 UIKit 0x0000000111cf35fb -[UIKeyboardEmojiCollectionInputView collectionView:numberOfItemsInSection:] + 56
12 UIKit 0x000000011269697d -[UICollectionViewData _updateItemCounts] + 469
13 UIKit 0x0000000112699844 -[UICollectionViewData numberOfSections] + 22
14 UIKit 0x000000011267c0f8 -[UICollectionViewFlowLayout _getSizingInfosWithExistingSizingDictionary:] + 506
15 UIKit 0x000000011267e088 -[UICollectionViewFlowLayout _fetchItemsInfoForRect:] + 127
16 UIKit 0x0000000112676ff2 -[UICollectionViewFlowLayout prepareLayout] + 272
17 UIKit 0x000000011256e428 -[UIKeyboardEmojiLayout prepareLayout] + 50
18 UIKit 0x0000000112697189 -[UICollectionViewData _prepareToLoadData] + 174
19 UIKit 0x00000001126979fe -[UICollectionViewData validateLayoutInRect:] + 53
20 UIKit 0x000000011264033e -[UICollectionView layoutSubviews] + 233
21 UIKit 0x0000000111cf4fa5 __47-[UIKeyboardEmojiCollectionView layoutSubviews]_block_invoke + 42
22 UIKit 0x0000000111dbb08e +[UIView(Animation) performWithoutAnimation:] + 90
23 UIKit 0x0000000111cf4f74 -[UIKeyboardEmojiCollectionView layoutSubviews] + 104
24 UIKit 0x0000000111dc655b -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1268
25 QuartzCore 0x00000001119e1904 -[CALayer layoutSublayers] + 146
26 QuartzCore 0x00000001119d5526 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 370
27 UIKit 0x0000000111db4334 -[UIView(Hierarchy) layoutBelowIfNeeded] + 1108
28 UIKit 0x0000000111cf4428 -[UIKeyboardEmojiCollectionInputView didMoveToWindow] + 82
29 UIKit 0x0000000111dbff01 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1737
30 UIKit 0x0000000111db2b96 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 151
31 Foundation 0x000000010f00b82b -[NSISEngine withBehaviors:performModifications:] + 155
32 UIKit 0x0000000111db2a98 -[UIView(Hierarchy) _postMovedFromSuperview:] + 855
33 UIKit 0x0000000111dc2a0a -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1927
34 UIKit 0x0000000111db0cf8 -[UIView(Hierarchy) addSubview:] + 838
35 UIKit 0x0000000112572b75 -[UIKBKeyplaneView setState:forKey:] + 1979
36 UIKit 0x00000001121f06a7 -[UIKeyboardLayoutStar setKeyplaneName:] + 9044
37 UIKit 0x00000001121f6689 -[UIKeyboardLayoutStar showKeyboardWithInputTraits:screenTraits:splitTraits:] + 482
38 UIKit 0x0000000111fc76cb -[UIKeyboardImpl finishLayoutChangeWithArguments:] + 518
39 UIKit 0x0000000111fc7e32 -[UIKeyboardImpl updateLayout] + 1161
40 UIKit 0x0000000111fbf124 -[UIKeyboardImpl reinitializeAfterInputModeSwitch:] + 160
41 UIKit 0x0000000111fbe7ec -[UIKeyboardImpl setKeyboardInputMode:userInitiated:updateIndicator:executionContext:] + 975
42 UIKit 0x0000000111fc011e -[UIKeyboardImpl setInputModeToNextInPreferredListWithExecutionContext:] + 452
43 UIKit 0x00000001122095a1 -[UIKeyboardLayoutStar completeSendStringActionForTouchUp:withActions:timestamp:interval:didLongPress:prevActions:executionContext:] + 884
44 UIKit 0x00000001122088b1 -[UIKeyboardLayoutStar completeRetestForTouchUp:timestamp:interval:executionContext:] + 5227
45 UIKit 0x0000000111ff2bd2 __45-[UIKeyboardLayout touchUpTaskForTouchState:]_block_invoke + 232
46 UIKit 0x0000000112840782 -[UIKeyboardTaskQueue continueExecutionOnMainThread] + 374
47 UIKit 0x0000000111ff28ab -[UIKeyboardLayout _touchEndedProcessingForTouches:] + 341
48 UIKit 0x0000000111d727ea -[UIWindow _sendTouchesForEvent:] + 2707
49 UIKit 0x0000000111d73f00 -[UIWindow sendEvent:] + 4114
50 UIKit 0x0000000111d20a84 -[UIApplication sendEvent:] + 352
51 UIKit 0x00000001125045d4 __dispatchPreprocessedEventFromEventQueue + 2926
52 UIKit 0x00000001124fc532 __handleEventQueue + 1122
53 CoreFoundation 0x0000000110407c01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
54 CoreFoundation 0x00000001103ed0cf __CFRunLoopDoSources0 + 527
55 CoreFoundation 0x00000001103ec5ff __CFRunLoopRun + 911
56 CoreFoundation 0x00000001103ec016 CFRunLoopRunSpecific + 406
57 GraphicsServices 0x00000001156e0a24 GSEventRunModal + 62
58 UIKit 0x0000000111d03134 UIApplicationMain + 159
解决此问题的任何线索都很好。
这里是更多详细信息,请找到以下图片:
使用以下步骤从“设置”->“键盘”中删除Emoji键盘后,我能够产生一种不再发生崩溃的情况。
该解决方案是不可接受的,我们不能要求客户遵循这些步骤,因此最好为崩溃提供解决方案。
删除表情符号键盘前后:
最佳答案
就我而言,这是因为AppleLanguages
属性不正确;它被设置为NSObject
,但没有设置为NSArray
。
错误:
NSUserDefaults.StandardUserDefaults["AppleLanguages"] = NSArray.FromObject(new NSString("en-US"));
应该:
NSUserDefaults.StandardUserDefaults["AppleLanguages"] = NSArray.FromObjects(new NSString("en-US"));
关于ios - 在编辑UITextField时,在硬件和模拟器上同时点击iPhone键盘上的Globe图标时,一致的iPhone App崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45227557/