尝试调用indexPathForCell时无法识别的选择器

时间:2014-11-04 13:54:59

标签: ios objective-c

我在Xcode 6.1中打开了旧的应用程序iOS开发目标4.3,当我尝试显示Sub首选项时它崩溃了

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[IASKPSTitleValueSpecifierViewCell indexPathForCell:]: unrecognized selector sent to instance 0xc8cde0'

相关代码:

UIView *view = [self superview]; 
    // Find TableViewCell
    if(view != nil && ![view isKindOfClass:[UITableView class]]) 
      view = [view superview]; // im enter here

    UIView *cellView = [self superview]; 
    // Find TableViewCell
    if(cellView != nil && ![cellView isKindOfClass:[UITableViewCell class]]) 
       cellView = [cellView superview]; // im enter here too


  if(view != nil && cellView != nil) {
    UITableViewCell *cell = (UITableViewCell*)cellView;
    UITableView *tableView = (UITableView*)view;

    if([tableView style] == UITableViewStyleGrouped) {
        NSIndexPath *path = [tableView indexPathForCell:cell]; // <-- here crash happens

 // ....

这是界面:

@interface IASKPSTitleValueSpecifierViewCell : UITableViewCell

@end

修改

不知何故cellViewview指向同一个地方

//cellView      IASKPSTitleValueSpecifierViewCell * 0xc7f680    0x00c7f680
//view          IASKPSTitleValueSpecifierViewCell * 0xc7f680    0x00c7f680

那么自Xcode4以来,旧代码不起作用的变化是什么?

请帮忙,

1 个答案:

答案 0 :(得分:0)

尝试这样找到tableView:

UITableView *tableView;
for (UIView *view = self; view != nil; view = view.superview){
    if ([view isKindOfClass:[UITableView class]])
        tableView = (UITableView*)view;
}