在iOS 6.1中输入中文时UIKeyboard崩溃

时间:2013-04-25 08:12:01

标签: ios crash calayer uikeyboard

我有一个UITextField接受用户输入来搜索服务器端的内容。 只输入英语,一切顺利。当我尝试输入中文时,应用程序崩溃了(但不是每次都崩溃)。

我得到了以下堆栈跟踪:

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   CoreGraphics                    0x33a72568 argb32_image_mark + 1732
1   CoreGraphics                    0x33a97f6c argb32_shade + 380
2   libRIP.A.dylib                  0x33dd625c ripl_BltShade + 1116
3   libRIP.A.dylib                  0x33dd578c ripc_DrawShading + 4812
4   CoreGraphics                    0x33a9738e CGContextDrawLinearGradient + 170
5   UIKit                           0x35915a4a UIKBDrawLinearGradient + 38
6   UIKit                           0x35c63abe -[UIKeyboardCandidateUnsplitKeyboardToggleButton toggleButtonBackgroundImageWithHighlight:] + 302
7   UIKit                           0x35c63938 -[UIKeyboardCandidateUnsplitKeyboardToggleButton updateBackgroundImages] + 48
8   UIKit                           0x35c63bd4 -[UIKeyboardCandidateUnsplitKeyboardToggleButton setDrawsBackground:] + 44
9   UIKit                           0x35c636e8 -[UIKeyboardCandidateUnsplitKeyboardToggleButton initWithFrame:] + 108
10  UIKit                           0x35bc05ca -[UIKeyboardCandidateGridHeader initWithFrame:] + 434
11  UIKit                           0x35c605e0 -[UIKeyboardCandidateView_iPhone_Bar initWithFrame:] + 324
12  UIKit                           0x35c5ed72 +[UIKeyboardCandidateView sharedInstance] + 242
13  UIKit                           0x35a5022c -[UIKeyboardImpl updateTextCandidateView] + 340
14  UIKit                           0x358fd648 -[UIKeyboardImpl setCandidates:] + 296
15  UIKit                           0x35a4fda2 -[UIKeyboardImpl updateCandidateDisplayAsyncWithCandidates:forInputManager:] + 146
16  TextInput                       0x394aa802 -[TIWordSearchOperationGetCandidates completeSearchOnMainThreadWithResults:] + 94
17  Foundation                      0x3431049c __NSThreadPerformPerform + 456
18  CoreFoundation                  0x339cd8f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12
19  CoreFoundation                  0x339cd158 __CFRunLoopDoSources0 + 208
20  CoreFoundation                  0x339cbf2a __CFRunLoopRun + 642
21  CoreFoundation                  0x3393f238 CFRunLoopRunSpecific + 352
22  CoreFoundation                  0x3393f0c4 CFRunLoopRunInMode + 100
23  GraphicsServices                0x3751e336 GSEventRunModal + 70
24  UIKit                           0x3585b2b4 UIApplicationMain + 1116

每次应用程序崩溃时,崩溃日志几乎都是一样的。 我花了几天时间才找到解决办法。

有人对此有所了解吗?

-

我发现问题可能会导致此问题。

我在我的项目中使用ARC,在根视图控制器的 - [viewDidLoad]消息中,我创建了一个子视图控制器,并在子视图控制器的 - [viewDidLoad]消息中,创建一个NSTimer并添加到当前运行循环以刷新子视图控制器中的子图层。

在评论创建NSTimer的代码之后,崩溃就消失了。

我将继续努力,并试图找到原因。

1 个答案:

答案 0 :(得分:0)

您使用的是UIGraphicsBeginImageContextWithOptions,而不是通过UIGraphicsEndImageContext释放Context。或类似的东西。