我在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
修改
不知何故cellView
和view
指向同一个地方
//cellView IASKPSTitleValueSpecifierViewCell * 0xc7f680 0x00c7f680
//view IASKPSTitleValueSpecifierViewCell * 0xc7f680 0x00c7f680
那么自Xcode4以来,旧代码不起作用的变化是什么?
请帮忙,
答案 0 :(得分:0)
尝试这样找到tableView:
UITableView *tableView;
for (UIView *view = self; view != nil; view = view.superview){
if ([view isKindOfClass:[UITableView class]])
tableView = (UITableView*)view;
}