简体   繁体   中英

UITextField (sometimes) crashes the app while typing

I am facing a problem with UITextField. It crashing the app (sometimes, not all the time) when I type in the UITextField. I suspect that this could be a memory issue as this happens only when I use the app continuously for 15 min. I hope I am correctly doing the memory management. And the app crashes particularly when I type something in the text field, not when doing some other action in the app. I am not sure what is causing the problem.

I've googled and found discussions about some related crashes with UITextField, but they didn't help my problem.

This is my crash log.

0   libobjc.A.dylib                 0x3260a5b0 objc_msgSend + 16
1   CoreFoundation                  0x32d8e034 _CFXNotificationPost + 1424
2   Foundation                      0x37d93d8c -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
3   Foundation                      0x37d9784e -[NSNotificationCenter postNotificationName:object:] + 26
4   UIKit                           0x35a9d268 -[UITextField fieldEditorDidChange:] + 284
5   UIKit                           0x35a9cac0 -[UIFieldEditor webViewDidChange:] + 76
6   CoreFoundation                  0x32d8e034 _CFXNotificationPost + 1424
7   Foundation                      0x37d93d8c -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
8   WebCore                         0x33bee1e0 WebThreadPostNotification + 64
9   WebCore                         0x33dc0d66 WebCore::Editor::appliedEditing(WTF::PassRefPtr<WebCore::CompositeEditCommand>) + 234
10  WebCore                         0x33dc2efe WebCore::TypingCommand::insertTextRunWithoutNewlines(WTF::String const&, bool) + 130
11  WebCore                         0x33dc2e18 WebCore::TypingCommandLineOperation::operator()(unsigned long, unsigned long, bool) const + 44
12  WebCore                         0x33dc2cfa WebCore::TypingCommand::doApply() + 150
13  WebCore                         0x33db84da WebCore::CompositeEditCommand::apply() + 118
14  WebCore                         0x33dc2c38 WebCore::TextInsertionBaseCommand::applyTextInsertionCommand(WebCore::Frame*, WTF::PassRefPtr<WebCore::TextInsertionBaseCommand>, WebCore::VisibleSelection const&, WebCore::VisibleSelection const&) + 124
15  WebCore                         0x33dc294a WebCore::TypingCommand::insertText(WebCore::Document*, WTF::String const&, WebCore::VisibleSelection const&, unsigned int, WebCore::TypingCommand::TextCompositionType) + 438
16  WebCore                         0x33dc23da WebCore::Editor::insertTextWithoutSendingTextEvent(WTF::String const&, bool, WebCore::TextEvent*) + 382
17  WebCore                         0x33dc2232 WebCore::Editor::handleTextEvent(WebCore::TextEvent*) + 274
18  WebCore                         0x33dc2110 WebCore::EventHandler::defaultTextInputEventHandler(WebCore::TextEvent*) + 12
19  WebCore                         0x33b8b7b8 WebCore::Node::defaultEventHandler(WebCore::Event*) + 244
20  WebCore                         0x33b8b132 WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) + 894
21  WebCore                         0x33b8ad8a WebCore::EventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const + 26
22  WebCore                         0x33b8ad4e WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr<WebCore::EventDispatchMediator>) + 94
23  WebCore                         0x33b8ac7e WebCore::Node::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) + 30
24  WebCore                         0x33d42d14 WebCore::EventTarget::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&) + 68
25  WebCore                         0x33dc1f26 WebCore::EventHandler::handleTextInputEvent(WTF::String const&, WebCore::Event*, WebCore::TextEventInputType) + 198
26  WebCore                         0x33dc1e58 WebCore::Editor::insertText(WTF::String const&, WebCore::Event*) + 12
27  WebKit                          0x3526a684 -[WebHTMLView(WebNSTextInputSupport) insertText:] + 304
28  WebCore                         0x33db7206 -[WAKResponder tryToPerform:with:] + 58
29  WebKit                          0x352905ea -[WebView(WebViewEditingActions) _performResponderOperation:with:] + 98
30  UIKit                           0x35ad803c -[UIWebDocumentView insertText:] + 40
31  UIKit                           0x35ad7ff4 -[UIKeyboardImpl insertText:] + 76
32  UIKit                           0x35aa514c -[UIKeyboardImpl addInputString:fromVariantKey:] + 2816
33  UIKit                           0x35aa3044 -[UIKeyboardImpl handleKeyEvent:] + 1636
34  UIKit                           0x35aa28b2 -[UIKeyboardLayoutStar sendStringAction:forKey:isPopupVariant:] + 482
35  UIKit                           0x35aa13a8 -[UIKeyboardLayoutStar touchUp:] + 3096
36  UIKit                           0x35aa0732 -[UIKeyboardLayout touchesEnded:withEvent:] + 382
37  UIKit                           0x359885f4 -[UIWindow _sendTouchesForEvent:] + 520
38  UIKit                           0x35975804 -[UIApplication sendEvent:] + 376
39  UIKit                           0x3597511e _UIApplicationHandleEvent + 6150
40  GraphicsServices                0x33aed5a0 _PurpleEventCallback + 588
41  CoreFoundation                  0x32e12680 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12
42  CoreFoundation                  0x32e11ee4 __CFRunLoopDoSources0 + 208
43  CoreFoundation                  0x32e10cb2 __CFRunLoopRun + 642
44  CoreFoundation                  0x32d83eb8 CFRunLoopRunSpecific + 352
45  CoreFoundation                  0x32d83d44 CFRunLoopRunInMode + 100
46  GraphicsServices                0x33aec2e6 GSEventRunModal + 70
47  UIKit                           0x359c92fc UIApplicationMain + 1116
48  MyApp                           0x00087578 0x1000 + 550264
49  MyApp                           0x000030f4 0x1000 + 8436

Any help?

Thanks.

Edit: I have several text fields, in different view controllers, in my app. The app crashes randomly no matter which text text field I am typing in. And it crashes only when I type in any of the text fields. I feel that there is some other issue with UITextField.

Any ideas?

Judging by the crash log, are you hooking up some notification observers for your UITextField(s), right?

Are you cleaning up (ie removing the notification observers) afterwards? In any case it is good practice to clean up afterwards.

Seems like a leak, you are sending a objc msg to some instance that doesnot conforms to the passed message. Check whether all the delegates are assigned correctly and messaged are send to alive objects

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM