2

我遇到了 UITextField 的问题。当我输入 UITextField 时,它会导致应用程序崩溃(有时,并非总是如此)。我怀疑这可能是内存问题,因为仅当我连续使用该应用程序 15 分钟时才会发生这种情况。我希望我正确地进行内存管理。尤其是当我在文本字段中输入内容时,应用程序会崩溃,而不是在应用程序中执行其他操作时。我不确定是什么导致了问题。

我用谷歌搜索并找到了有关 UITextField 的一些相关崩溃的讨论,但它们对我的问题没有帮助。

这是我的崩溃日志。

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

有什么帮助吗?

谢谢。

编辑:我的应用程序中有几个文本字段,位于不同的视图控制器中。无论我在哪个文本文本字段中输入,应用程序都会随机崩溃。只有当我输入任何文本字段时,它才会崩溃。我觉得 UITextField 还有一些其他问题。

有任何想法吗?

4

2 回答 2

3

从崩溃日志来看,您是否为您的 UITextField 连接了一些通知观察者,对吗?

之后您是否进行清理(即删除通知观察者)?无论如何,事后清理是个好习惯。

于 2012-10-25T13:37:34.427 回答
2

看起来像泄漏,您正在向某个不符合传递消息的实例发送 objc 消息。检查是否所有的代表都被正确分配并且消息被发送到活动对象

于 2012-10-25T11:03:17.533 回答