在左侧滑动时,表格视图在ios 7上崩溃

时间:2014-04-29 20:39:55

标签: ios uitableview ios7

每当我在一个单元格上向左滑动时,我的应用程序崩溃,这就是我得到的

-[UITableViewCellScrollView _tableView]: unrecognized selector sent to instance 0x166a1960
-[UITableViewCellScrollView _tableView]: unrecognized selector sent to instance 0x166a1960
Stack Trace: (
    0   CoreFoundation                      0x2fc08f23 <redacted> + 154
    1   libobjc.A.dylib                     0x3a39fce7 objc_exception_throw + 38
    2   CoreFoundation                      0x2fc0c837 <redacted> + 202
    3   CoreFoundation                      0x2fc0b137 <redacted> + 706
    4   CoreFoundation                      0x2fb5a098 _CF_forwarding_prep_0 + 24
    5   UIKit                               0x3262ef91 <redacted> + 184
    6   UIKit                               0x325be3f5 <redacted> + 816
    7   UIKit                               0x32468a21 <redacted> + 148
    8   UIKit                               0x325ce0cf <redacted> + 78
    9   UIKit                               0x324681eb <redacted> + 458
    10  UIKit                               0x32467c4b <redacted> + 666
    11  UIKit                               0x3243ce75 <redacted> + 196
    12  UIKit                               0x3243b541 <redacted> + 7120
    13  CoreFoundation                      0x2fbd3fef <redacted> + 14
    14  CoreFoundation                      0x2fbd34b7 <redacted> + 206
    15  CoreFoundation                      0x2fbd1ca7 <redacted> + 630
    16  CoreFoundation                      0x2fb3c769 CFRunLoopRunSpecific + 524
    17  CoreFoundation                      0x2fb3c54b CFRunLoopRunInMode + 106
    18  GraphicsServices                    0x34aa96d3 GSEventRunModal + 138
    19  UIKit                               0x3249b891 UIApplicationMain + 1136
    20  Event Receiver                      0x000c3849 main + 116
    21  libdyld.dylib                       0x3a89dab7 <redacted> + 2
)

我试图为 - [NSObject(NSObject)doesNotRecognizeSelector:]添加符号断点但是没有显示哪个代码发送了那个选择器

更新:这次我使用了模拟器,并试图让应用程序崩溃,我现在得到了这个:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCellScrollView _tableView]: unrecognized selector sent to instance 0x8e46570'
*** First throw call stack:
(
    0   CoreFoundation                      0x01ad91e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x018588e5 objc_exception_throw + 44
    2   CoreFoundation                      0x01b76243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    3   CoreFoundation                      0x01ac950b ___forwarding___ + 1019
    4   CoreFoundation                      0x01ac90ee _CF_forwarding_prep_0 + 14
    5   UIKit                               0x00785f7a -[UITableViewCellScrollView gestureRecognizerShouldBegin:] + 203
    6   UIKit                               0x008b5466 -[UIGestureRecognizer _shouldBegin] + 1309
    7   UIKit                               0x008b1d89 -[UIGestureRecognizer setState:] + 171
    8   UIKit                               0x008e39d7 -[UIPanGestureRecognizer touchesMoved:withEvent:] + 142
    9   UIKit                               0x0099792a -[UIScrollViewPanGestureRecognizer touchesMoved:withEvent:] + 89
    10  UIKit                               0x005597d8 -[UIWindow _sendGesturesForEvent:] + 649
    11  UIKit                               0x0055a971 -[UIWindow sendEvent:] + 1021
    12  UIKit                               0x0052c5f2 -[UIApplication sendEvent:] + 242
    13  UIKit                               0x00516353 _UIApplicationHandleEventQueue + 11455
    14  CoreFoundation                      0x01a6277f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
    15  CoreFoundation                      0x01a6210b __CFRunLoopDoSources0 + 235
    16  CoreFoundation                      0x01a7f1ae __CFRunLoopRun + 910
    17  CoreFoundation                      0x01a7e9d3 CFRunLoopRunSpecific + 467
    18  CoreFoundation                      0x01a7e7eb CFRunLoopRunInMode + 123
    19  GraphicsServices                    0x03dba5ee GSEventRunModal + 192
    20  GraphicsServices                    0x03dba42b GSEventRun + 104
    21  UIKit                               0x00518f9b UIApplicationMain + 1225
    22  Event Receiver                      0x000056cd main + 141
    23  libdyld.dylib                       0x026a5701 start + 1
)

3 个答案:

答案 0 :(得分:1)

通过对单元格应用一些着色,我看到当我从附件视图中滑动单元格时崩溃

enter image description here


解决方法是在tableView中将accessoryType设置为UITableViewCellAccessoryNone:cellForRowAtIndexPath:

cell.accessoryType = UITableViewCellAccessoryNone;


<强>参考文献: - 如何使用动作制作可滑动的表格视图单元格 - 不使用滚动视图的坚果here

- 仔细查看表视图单元格here

答案 1 :(得分:1)

嘿〜我刚刚在我的自定义UItableview Cell中删除了以下代码,但我不知道它是否可以帮到你

self.contentView.userInteractionEnabled = NO;

在我的情况下,当我尝试在iOS7中的自定义userinteractionEnabled中向左或向右滑动时,禁用单元格内容视图的UItableView会导致完全相同的崩溃, 它应该通过删除来修复

答案 2 :(得分:0)

考虑到你所得到的错误以及这些问题:

0x01ac90ee _CF_forwarding_prep_0 + 14
0x00785f7a -[UITableViewCellScrollView gestureRecognizerShouldBegin:] + 203

似乎您以某种方式将UITableViewCellScrollView的实例设置为手势识别器的代理。由于UITableViewCellScrollView可能没有实现UIGestureRecognizerDelegate协议,因此最终会出现无法识别的选择器异常。

仔细检查每个表格单元格中的手势识别器,并检查其代表的身份。