昨天用Xcode5&iOS7調(diào)試時發(fā)現(xiàn)程序會掛在一個地方:
UITableView *tableView = (UITableView *)self.superview;
[tableView deselectRowAtIndexPath:[tableView indexPathForCell:self] animated:YES];
其中self是一個擴展自UITableViewCell的子類,出錯的提示是UITableViewWrapperView沒有deselectRowAtIndexPath的方法盆色,后來才反應(yīng)過來灰蛙,iOS7中UITableView有一個subview是UITableViewWrapperView,它是所有UITableViewCell的superview傅事。
后來代碼改成這樣:
UITableView *tableView = (UITableView *)self.superview;
if (![tableView isKindOfClass:[UITableView class]]) tableView = (UITableView *)tableView.superview;
[tableView deselectRowAtIndexPath:[tableView indexPathForCell:self] animated:YES];
轉(zhuǎn)自:肆無忌憚.