1

I've been scratching my head on this one for a while now and I just can't seem to figure it out. My app has crashed only a handful of times giving me this StackTrace (however I'm not sure where the error is occurring because this is an error report from a live app):

0     libicucore.A.dylib                    0x31227788 ucol_getVersion + 0
1     TextInput                             0x3255efe7 _ZN2KB8WordTrie4loadERKNS_6StringE + 279
2     TextInput                             0x325584c1 _ZN2KB16StaticDictionary4loadERKNS_6StringE + 17
3     TextInput                             0x328c4d03 _ZN2KB19DictionaryContainerC2ERKNS_6StringES3_bb + 59
4     TextInput                             0x328c4ca1 _ZN2KB19DictionaryContainer6createERKNS_6StringES3_bb + 45
5     TextInput                             0x3254ffa1 _ZN14TIInputManager17load_dictionariesERKN2KB6StringES3_b + 25
6     TextInput                             0x32561003 -[TIKeyboardInputManagerZephyr loadDictionaries] + 223
7     TextInput                             0x32560c47 -[TIKeyboardInputManagerZephyr initWithConfig:] + 503
8     UIKit                                 0x367fff57 +[UIKeyboardInputManager sharedInstanceForInputMode:inHardwareKeyboardMode:] + 163
9     UIKit                                 0x367fefa7 -[UIKeyboardImpl setInputMode:userInitiated:] + 403
10    UIKit                                 0x367febbb -[UIKeyboardImpl setInputModeFromPreferences] + 379
11    UIKit                                 0x367fd491 -[UIKeyboardImpl initWithFrame:] + 465
12    UIKit                                 0x367fd183 +[UIKeyboardImpl sharedInstance] + 151
13    UIKit                                 0x3685f6af -[UIAlertView(Private) _updateFrameForDisplay] + 391
14    UIKit                                 0x3685c59d -[UIAlertView(Private) layoutAnimated:withDuration:] + 529
15    UIKit                                 0x3685c291 -[UIAlertView(Private) _layoutPopupAlertWithOrientation:animated:] + 105
16    UIKit                                 0x3685acd7 -[UIAlertView(Private) _performPopup:animationType:revealedBySpringBoardAlert:] + 407
17    UIKit                                 0x3685aaff -[UIAlertView(Private) _performPopup:animationType:] + 31
18    UIKit                                 0x3685a43f -[UIAlertView(Private) popupAlertAnimated:animationType:] + 35
19    *APP NAME*                            0x000f984d 0x000ef000 + 43085
20    libdispatch.dylib                     0x38080793 _dispatch_call_block_and_release + 11
21    libdispatch.dylib                     0x38083b3b _dispatch_queue_drain + 143
22    libdispatch.dylib                     0x3808167d _dispatch_queue_invoke + 45
23    libdispatch.dylib                     0x38084613 _dispatch_root_queue_drain + 211
24    libdispatch.dylib                     0x380847d9 _dispatch_worker_thread2 + 93
25    libsystem_c.dylib                     0x342fc7f1 _pthread_wqthread + 361

The lines that are really confusing me are lines 6 and 13 which mention methods that I've never heard of- TIKeyboardInputManagerZephyr or UIAlertView(Private)??

Does anyone know what those mean? I feel like TIKeyboardInputManagerZephyr has something to do with AutoCorrect functionality, and I have a hunch that the UIAlertView lines have to do with some kind of dialog that popped up from one of Apple's private APIs (however my app uses none of those)?

These error reports are from iPhone's running iOS 6.0.1

I really don't know on this one- and if it's too localized, I'd like to redirect any answers to a more general purpose: is there any way to pick apart a stack trace to understand it more easily, or is it just something that kinda comes with experience?

Sam Spencer
  • 8,492
  • 12
  • 76
  • 133
  • `TIKeyboardInputManagerZephyr` is a class from the private `TextInput.framework`. `UIAlertView(Private)` is a private interface category. Are you using alert views to input data? Do you do anything special with these? Any keyboard categories you might be using? I remember some keyboard "managers" used to cause havoc. Or it could very well be an iOS bug. – Léo Natan Dec 08 '12 at 04:13
  • I do use an alert view with a text box to prompt the user to enter a filename... however I was not aware that was a private class (that is, alert-views with text inputs)? And if it is, shouldn't iTC detect that before I upload to the AppStore? – Sam Spencer Dec 08 '12 at 04:16
  • No no, the alert view is not a private class. When you call `show`, the implementation calls internal private methods, which show up in the stack. – Léo Natan Dec 08 '12 at 04:18
  • So this means that the bug is contained within the line(s) where I handle text input from the AlertView? – Sam Spencer Dec 08 '12 at 20:36
  • No, it seems the error occurs while attempting to display the alert view a different thread. See my answer. – Léo Natan Dec 08 '12 at 23:37

1 Answers1

2

Are you attempting to display the alert view from a thread other than the main thread?

Try wrapping the UIAlertView code in a block and dispatching that block on the main thread.

Here is a similar problem to yours: App crashes after change to iOS6 - ucol_getVersion https://devforums.apple.com/message/728324#728324

Community
  • 1
  • 1
Léo Natan
  • 56,823
  • 9
  • 150
  • 195
  • No, I am not doing any special thread changes that deal with UIAlertViews with Input boxes. Are you saying I should place it on a different thread? And could you provide some general tips on how to read a StackTrace? – Sam Spencer Dec 10 '12 at 03:01
  • No, I am saying DO NOT put it on another thread. Anything related to UIKit should be done on the main thread. There isn't much in the reading of stack traces. Here is a nice question regarding stack traces: http://stackoverflow.com/questions/6462214/how-to-read-objective-c-stack-traces – Léo Natan Dec 10 '12 at 07:17