App崩溃说集合表达式类型UIView *'可能无法响应'countByEnumeratingWithState:object:count“'

时间:2014-03-13 05:59:46

标签: ios iphone objective-c uitableview uiview

我在tableView中有一个UIImageView,并希望在单击该行时以编程方式删除它。

   -(void) tableView:(UITableView *) tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {

            for (UIView *subview in  tableView)
            {
                if([subview isKindOfClass:[UIImageView class]])
                {
                 [subview removeFromSuperview];
                }
            }
}

当我点击表格行时,应用程序崩溃了。 Warning : Collection expression type UIView* may not respond to countByEnumeratingWithState:object:count" 应用程序崩溃提供相同的消息。我错过了什么?我只粘贴了相关的代码部分。

3 个答案:

答案 0 :(得分:14)

代码应该像

for (UIView *subview in  tableView.subviews)

答案 1 :(得分:0)

将循环更改为

  for (UIView *subview in  [tableView subviews])
  {
       if([subview isKindOfClass:[UIImageView class]])
       {
           [subview removeFromSuperview];
       }
  }

答案 2 :(得分:0)

尝试以下代码。它可能对你有帮助..

-(void) tableView:(UITableView *) tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
         NSArray *cells = [tableView visibleCells]; 
        UITableViewCell *currentCell = nil;
        for (UITableViewCell *cell in cells)
        {
            NSIndexPath *currentIndexPath =  [tableView indexPathForCell:cell];
            if(currentIndexPath.row == indexPath.row && currentIndexPath.section == indexPath.section)
            {
                currentCell = cell;
                break;
             }
        }
   for(UIView *subView in [[currentCell contentView] subviews])
    {
        // do your stuff.
    }

}