
image.png
昨天用Xcode5&iOS7調(diào)試時(shí)發(fā)現(xiàn)程序會掛在一個(gè)地方:
UITableView *tableView = (UITableView *)self.superview;
[tableView deselectRowAtIndexPath:[tableView indexPathForCell:self] animated:YES];
其中self是一個(gè)擴(kuò)展自UITableViewCell的子類,出錯(cuò)的提示是UITableViewWrapperView沒有deselectRowAtIndexPath的方法,后來才反應(yīng)過來,iOS7中UITableView有一個(gè)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)自:肆無忌憚.