Ios UITextField滚动TextFieldToVisible崩溃

Ios UITextField滚动TextFieldToVisible崩溃,ios,ios7,Ios,Ios7,我经常收到我的一个iOS应用程序的特定崩溃报告,但我不知道是什么导致了它。我已经包括了下面的堆栈跟踪,我想知道是否有人可以帮忙 这次崩溃发生在iOS 7上的iPad上。我自己无法复制它,而且它似乎没有链接到我代码中的任何内容,而是在UIKit中(我在项目中的任何地方都没有看到scrollTextFieldToVisible方法) Thread : Crashed: com.apple.main-thread 0 libobjc.A.dylib 0x3a5ec626

我经常收到我的一个iOS应用程序的特定崩溃报告,但我不知道是什么导致了它。我已经包括了下面的堆栈跟踪,我想知道是否有人可以帮忙

这次崩溃发生在iOS 7上的iPad上。我自己无法复制它,而且它似乎没有链接到我代码中的任何内容,而是在UIKit中(我在项目中的任何地方都没有看到
scrollTextFieldToVisible
方法)

Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x3a5ec626 objc_msgSend + 5
1  UIKit                          0x32909db1 -[UITextField scrollTextFieldToVisible] + 304
2  CoreFoundation                 0x2fac3f01 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
3  CoreFoundation                 0x2fa37d69 _CFXNotificationPost + 1720
4  Foundation                     0x30423cc5 -[NSNotificationCenter postNotificationName:object:userInfo:] + 72
5  UIKit                          0x323f7a59 -[UIInputViewTransition postNotificationsForTransitionEnd] + 944
6  UIKit                          0x32794a95 __53-[UIPeripheralHost(UIKitInternal) executeTransition:]_block_invoke1364 + 336
7  UIKit                          0x3236b76d -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 284
8  UIKit                          0x3236b3b7 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 178
9  UIKit                          0x3236b2cf -[UIViewAnimationState animationDidStop:finished:] + 66
10 QuartzCore                     0x31fb5e0b CA::Layer::run_animation_callbacks(void*) + 234
11 libdispatch.dylib              0x3aacbd3f _dispatch_client_callout + 22
12 libdispatch.dylib              0x3aace6c3 _dispatch_main_queue_callback_4CF + 278
13 CoreFoundation                 0x2facc641 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
14 CoreFoundation                 0x2facaf0d __CFRunLoopRun + 1308
15 CoreFoundation                 0x2fa35729 CFRunLoopRunSpecific + 524
16 CoreFoundation                 0x2fa3550b CFRunLoopRunInMode + 106
17 GraphicsServices               0x349716d3 GSEventRunModal + 138
18 UIKit                          0x32396871 UIApplicationMain + 1136
19 PilotPro                       0x000818bb main (main.m:17)

有什么想法吗?

你有没有忘记在你的一个类的dealoc中取消对UITextField的IBOUTLET引用?假设你的项目不是arc

我也遇到过这个问题,并且发现,在启用NSZombies的情况下,这是由其委托上的UITextField消息响应选择器引起的

我不知道到底发生了什么,但我假设如下:

  • 某个地方取消分配了viewController,但没有释放对UITextField的引用
  • UITextField现在正在泄漏,并且对其委托(viewController)有一个悬空引用
  • 在另一个视图中,点击UITextField/成为第一响应者
  • 这将调用键盘并发出键盘显示通知
  • 泄漏的文本字段仍在观察键盘通知(CFNOTIFICATIONCENTER\u正在向观察者发出呼叫)
  • 泄漏的UITextField消息“scrollTextFieldToVisible”作为对通知的响应
  • 此方法在UITextField委托上显示消息“respondsToSelector”
  • 这会导致崩溃,因为不再分配其委托

  • 如果没有一个代码告诉你一些事情是不容易的,我粗略的猜测是你正在对另一个线程中的UI元素做一些事情?我建议使用NSZombie来计算它崩溃的确切位置。你有没有找到这个问题的根源?我看到了这个精确的跟踪(一行接一行)我的一个应用程序经常出现这种情况。它很神秘。我不确定如何追踪它。我仍然没有弄清楚它,崩溃仍然偶尔发生。:/我的项目正在使用ARC。我仍然没有找到解决方案,但我计划很快放弃对iOS 7的支持,以解决这个问题。:)