【问题标题】:UITableViewCell unrecognized selectorUITableViewCell 无法识别的选择器
【发布时间】:2011-12-04 22:56:34
【问题描述】:

我有一个带有 ViewController 作为其数据源和委托的 UITableView。在同一个 XIB 中,我的搜索栏有一个自定义单元格。表格视图中的第一个单元格就是这个单元格。偶尔,我会遇到以下异常:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell numberOfSectionsInTableView:]: unrecognized selector sent to instance 0x5d76840'

Gdb 显示这实际上是我的搜索单元格,并且它是 tableview 的子项。此外,进一步检查表明数据源实际上正确指向我的视图控制器,而不是搜索栏单元格。基于此,UIKit 似乎只是将消息发送到错误的目标。以前有人见过这样的事情吗?会不会只是模拟器的问题?

全栈:

*** Call stack at first throw:
(
    0   CoreFoundation                      0x012955a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x013e9313 objc_exception_throw + 44
    2   CoreFoundation                      0x012970bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x01206966 ___forwarding___ + 966
    4   CoreFoundation                      0x01206522 _CF_forwarding_prep_0 + 50
    5   UIKit                               0x006a26ff -[UITableViewRowData(UITableViewRowDataPrivate) _updateNumSections] + 111
    6   UIKit                               0x006a23b0 -[UITableViewRowData invalidateAllSections] + 66
    7   UIKit                               0x00559d23 -[UITableView(_UITableViewPrivate) _updateRowData] + 113
    8   UIKit                               0x0055565c -[UITableView noteNumberOfRowsChanged] + 105
    9   UIKit                               0x00562708 -[UITableView reloadData] + 773
    10  Foundation                          0x00c6e94e __NSThreadPerformPerform + 251
    11  CoreFoundation                      0x012768ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
    12  CoreFoundation                      0x011d488b __CFRunLoopDoSources0 + 571
    13  CoreFoundation                      0x011d3d86 __CFRunLoopRun + 470
    14  CoreFoundation                      0x011d3840 CFRunLoopRunSpecific + 208
    15  CoreFoundation                      0x011d3761 CFRunLoopRunInMode + 97
    16  GraphicsServices                    0x01d3e1c4 GSEventRunModal + 217
    17  GraphicsServices                    0x01d3e289 GSEventRun + 115
    18  UIKit                               0x004f5c93 UIApplicationMain + 1160
    19  iPanopto                            0x000020f9 main + 121
    20  iPanopto                            0x00002075 start + 53
)

【问题讨论】:

    标签: iphone uitableview


    【解决方案1】:

    当 UITableViewController 未正确附加到 NIB 中时,我遇到了这个问题...或 NIB 文件中未定义特定的自定义单元格类。

    【讨论】:

    • 怎么连接不正确呢?插座有问题?单元格与 tableview 在同一个 NIB 中定义。
    • 类标识符必须设置为单元格的特定自定义类
    • 只使用UITableViewCell有错吗?我不想对单元类做任何特殊行为,我只是让视图控制器处理这一切。
    【解决方案2】:

    由于 ARC,您的 UITableView 的父视图可能会在幕后释放。我曾经也遇到过这个问题,最终被this 回答(感谢Thomas!)设置在正确的轨道上。请注意,此问题的根源可能存在于实际表所在位置的“上游”位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多