2013-01-14 22 views
2

我让我的应用间歇性崩溃。崩溃日志让我觉得UITextField的resignFirstResponser被调用的方式似乎存在一些问题。我在我的自定义tableview单元格中使用UITextField和UITextFieldDelegate协议方法,这会导致间歇性崩溃。我在下面发布崩溃日志。请任何建议或意见,可以帮助我了解崩溃的根本原因会很好。另外,好像死机大多发生在iOS 6resignFirstResponder崩溃而定制使用的UITextField UlTableViewCell

感谢。

以下是Crittercism崩溃日志:

 

    0 libobjc.A.dylib 0x39d585b0 objc_msgSend + 16 + 15 
    1 UIKit 0x3477f165 -[UITextField _resignFirstResponder] + 457 + 456 
    2 UIKit 0x34664249 -[UIResponder resignFirstResponder] + 281 + 280 
    3 UIKit 0x34712397 -[UITextField resignFirstResponder] + 147 + 146 
    4 UIKit 0x346962f5 -[UITableView reloadData] + 225 + 224 
    5 BF 0x0008ed37 -[BFOpenBetsController updateFilterData] (BFOpenBetsController.m:768) 
    6 BF 0x0008d695 -[BFOpenBetsController deleteBet:] (BFOpenBetsController.m:566) 
    7 BF 0x00094fbd -[BFOpenBetsUnMatchedCell userTapOnButton:] (BFOpenBetsUnMatchedCell.m:198) 
    8 UIKit 0x347380a5 -[UIApplication sendAction:to:from:forEvent:] + 73 + 72 
    9 UIKit 0x34738057 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 31 + 30 
    10 UIKit 0x34738035 -[UIControl sendAction:to:forEvent:] + 45 + 44 
    11 UIKit 0x347378eb -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 503 + 502 
    12 UIKit 0x34737de1 -[UIControl touchesEnded:withEvent:] + 489 + 488 
    13 UIKit 0x34656421 _UIGestureRecognizerUpdate + 5769 + 5768 
    14 CoreFoundation 0x351536cd __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 21 + 20 
    15 CoreFoundation 0x351519c1 __CFRunLoopDoObservers + 277 + 276 
    16 CoreFoundation 0x35151d17 __CFRunLoopRun + 743 + 742 
    17 CoreFoundation 0x350c4ebd CFRunLoopRunSpecific + 357 + 356 
    18 CoreFoundation 0x350c4d49 CFRunLoopRunInMode + 105 + 104 
    19 GraphicsServices 0x32a172eb GSEventRunModal + 75 + 74 
    20 UIKit 0x346a12f9 UIApplicationMain + 1121 + 1120 

+0

崩溃的情况是什么?在显示或滚动等之后它会崩溃吗? –

+0

@AkshayShah:其实这是一个Crittercism日志。用户在Live版本中看到它,我无法重现它,因此它似乎是一个间歇性问题。我的理解是它发生在tableView稍后重新加载的时候,所以可能就像滚动或更新tableView在初始数据显示之后肯定不会在乞求中一样。甚至滚动也不会一直崩溃。所以我想可能是我的textField被选中,然后tableView被重新加载或什么的,但我不知道只是试图从日志中弄清楚事情。 –

回答

0

这有可能是你的UITextFields的一个被释放(因为他们做的时候滚出视,或者视图时重新加载)。看到你有一个TextField委托,它可能不知道该字段不再存在,所以当它调用resign first responder时,它会崩溃。

解决办法是打电话的UITextField setDelegate:无在您的自定义单元格的的dealloc例程。

请参阅https://stackoverflow.com/a/9484805/899996

0

似乎更新过滤数据时一样,重新加载的tableview到时候一些UITextField在编辑模式。 尝试用这样的东西重现。

如果发生此问题,请在致电reloadData联系UITableView之前,在您所有的有效UITextField上尝试使用resignFirstResponder

相关问题