2012-11-27 32 views
1

我一直在摸索我的头一阵子,现在我似乎无法弄清楚。我的应用程序崩溃只是时间给我这个堆栈跟踪(但是我不知道在那里发生了误差,因为这是从现场的应用程序的错误报告)了一把:TIKeyboardInputManagerZephyr和UIAlertView(私有)的iOS StackTrace错误

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 

是真正令人困惑的线我是线和其中提到的方法,我从来没有听说过 - TIKeyboardInputManagerZephyr或UIAlertView(私人)?

有谁知道这是什么意思?我觉得TIKeyboardInputManagerZephyr与自动更正功能有关,我有一个预感,UIAlertView行必须处理某种从Apple的私有API中弹出的对话框(但是我的应用程序不使用这些对话框)?

这些错误报告是从iPhone的运行iOS 6.0.1

我真的不知道这个单,如果它过于本地化,我想任何答案重定向到一个更通用的:是有没有办法选择一个堆栈跟踪来更容易地理解它,还是只是有点经验的东西?

+0

'TIKeyboardInputManagerZephyr'是来自私营'TextInput.framework'类。 'UIAlertView(Private)'是一个专用接口类别。 您是否使用警报视图来输入数据?你有什么特别的吗?您可能使用的任何键盘类别?我记得一些曾经造成破坏的键盘“管理者”。或者它可能是一个iOS错误。 –

+0

我确实使用带有文本框的警报视图来提示用户输入文件名......但是我不知道这是一个私人类(即带有文本输入的警报视图)?如果是这样,在我上传到AppStore之前不应该检测到iTC吗? –

+0

不,不是,警报视图不是私人类。当你调用'show'时,实现调用内部私有方法,这些私有方法出现在堆栈中。 –

回答

2

您是否试图显示来自主线程以外的线程的警报视图?

尝试将UIAlertView代码封装在一个块中,并在主线程上调度该块。

这里有一个类似的问题对你: App crashes after change to iOS6 - ucol_getVersion https://devforums.apple.com/message/728324#728324

+0

不,我没有做任何特殊的线程更改与输入框处理UIAlertViews。你是说我应该把它放在不同的线程?你能提供一些关于如何阅读StackTrace的一般技巧吗? –

+0

不,我在说不要把它放在另一个线程上。任何与UIKit相关的东西都应该在主线程上完成。 堆栈轨迹的读数并不多。这里是关于堆栈痕迹的一个很好的问题: http://stackoverflow.com/questions/6462214/how-to-read-objective-c-stack-traces –