2011-03-10 178 views
24

UITextField的自動更正使用iOS 4.3 sdk構建目標在模擬器上崩潰了我的應用程序。使用iOS 4.2 sdk在設備和模擬器上正常工作。UITextField在iOS 4.3模擬器上的自動更正崩潰

任何其他人遇到此問題?我正在計算它與4.3 sdk的錯誤?

只要我輸入第二個字符。 堆棧跟蹤

#0 0x01c01000 in objc_assign_ivar() 
#1 0x03b7ec34 in -[AppleSpell init]() 
#2 0x007e7538 in -[UITextChecker _checker]() 
#3 0x007e8de9 in -[UITextChecker checkSpellingOfString:startingAt:language:wrap:correction:]() 
#4 0x0b335725 in TIInputManagerZephyr::lookup_spellcheck_candidates(KB::String const&)() 
#5 0x0b3353f3 in TIInputManagerZephyr::lookup_static_dynamic_candidates(KB::String const&, KB::String const&, KB::Vector<KB::FPoint> const&, bool)() 
#6 0x0b332b2b in TIInputManager::lookup()() 
#7 0x0b332e18 in TIInputManager::autocorrection()() 
#8 0x0b34a06b in -[TIKeyboardInputManagerZephyr autocorrection]() 
#9 0x005cfbe8 in -[UIKeyboardImpl generateCandidatesWithCompletions:]() 
#10 0x005cfc3b in -[UIKeyboardImpl generateCandidates]() 
#11 0x005dca23 in -[UIKeyboardImpl addInputString:fromVariantKey:]() 
#12 0x005de71b in -[UIKeyboardImpl handleKeyEvent:]() 
#13 0x0070a2ee in -[UIKeyboardLayoutStar sendStringAction:forKey:]() 
#14 0x0070ed19 in -[UIKeyboardLayoutStar touchUp:]() 
#15 0x005ebda2 in -[UIKeyboardLayout touchesEnded:withEvent:]() 
#16 0x004b8ded in -[UIWindow _sendTouchesForEvent:]() 
#17 0x00499c37 in -[UIApplication sendEvent:]() 
#18 0x0049ef2e in _UIApplicationHandleEvent() 
#19 0x02011992 in PurpleEventCallback() 
#20 0x0176a944 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__() 
#21 0x016cacf7 in __CFRunLoopDoSource1() 
#22 0x016c7f83 in __CFRunLoopRun() 
#23 0x016c7840 in CFRunLoopRunSpecific() 
#24 0x016c7761 in CFRunLoopRunInMode() 
#25 0x020101c4 in GSEventRunModal() 
#26 0x02010289 in GSEventRun() 
#27 0x004a2c93 in UIApplicationMain() 

而且有時,你會看到,僅僅開始於主更簡單的跟蹤,然後立即停止對objc_assign_ivar。在輸入文本字段(如UISearchBar)時也會發生這種情況。

+0

是的,我以爲我是孤身一人。對於那些獅子們,請在正式渠道提交;您會比標準錯誤報告網站獲得更多關注。 – FeifanZ 2011-07-16 03:36:44

回答

34

在模擬器上,打開設置 - >鍵盤並關閉所有選項。 這可以防止崩潰(直到錯誤得到解決)。

+0

謝謝,在Lion GM + Xcode 4.2 Preview 4上修正了這個問題。模擬器運行的是iOS 4.3 – 2011-08-02 05:26:20

+0

仍然在運行iOS 4.3的Lion 10.7.2 + Xcode 4.2 GM,Simulator上運行,但在Simulator iOS5上運行良好。 – bentford 2011-11-01 17:51:53

+0

是。爲我工作。 – debug 2012-01-10 23:06:30

3

如果您覺得SDK中存在錯誤,請在http://bugreport.apple.com上提交錯誤報告。

但是,爲了回答你,我沒有遇到同樣的問題,所以它可能是你的代碼中的問題。您可以在崩潰前檢查堆棧跟蹤,看看是否有某種您在某些舊版操作系統中工作時丟失的東西?

參考:iOS Development guide

7

我遇到了同樣的問題,上運行獅子開發者預覽版2的4.3模擬器這是在Lion上的模擬器中的錯誤。我一直在暫時停用autocorrection(setAutocorrectionType:UITextAutocorrectionTypeNo)。

+0

這工作,最近似乎是做的伎倆是@CraicDesign的解決方案。 – Schoob 2011-07-11 06:32:18

+0

這裏使用Lion GM + Xcode 4.2預覽版的同樣的問題3.模擬器運行iOS 4.3。在我的UITextView上禁用自動更正可防止發生崩潰。 – 2011-07-17 20:24:19

+0

順便說一句,完全相同的代碼在我的Snow Leopard機器(Xcode 4.2 Preview 3 + 4.3 Simulator)上運行時沒有發生崩潰。 – 2011-07-17 20:26:11

0

我也遇到過這個問題。在我的情況下,我能夠追蹤到當前有焦點的文本字段的resignFirstResponder調用。

我有一些代碼看起來是這樣的:

if(loginSuccess) { 
    [self.userName resignFirstResponder]; 
    [self.password resignFirstResponder]; // This is the one with focus 
} 

現在,當我註釋掉密碼resignFirstResponder打電話,我不再得到了崩潰。

這絕對是一個錯誤,應該報告。

1

在模擬器鍵盤設置中關閉「自動校正」爲我解決了這個問題。

enter image description here

6

我們通過以下步驟來更新模擬器4.3:

  1. 進入的Xcode - >首選項 - >下載
  2. 更新的iOS 4.3模擬器

和RESET模擬器並再次運行。完成。

相關問題