2012-11-27 35 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 –