0

在 UIView 中,如何转换 self.nextResponder (指向视图的控制器)以避免下面第三行出现编译器警告?

UITableView* tableView = [ [ UITableView alloc ] initWithFrame:CGRectZero style:UITableViewStylePlain];
tableView.tag = TAG_IMAGEADMIN_IMAGESLISTVIEW;
tableView.delegate = self.nextResponder; // compiler warning here
tableView.dataSource = self;
[self addSubview:tableView];

谢谢

4

2 回答 2

0

由于 UITableViewDelegate 是一个协议,您可以转换为

tableView.delegate = (id < UITableViewDelegate >)self.nextResponder。这告诉编译器 self.nextResponder 是任何确认 UITableViewDelegate 协议的对象。

如果你知道 nextResponder 属于任何特定类,比如 UIViewController,你可以写成

tableView.delegate = (UIViewController < UITableViewDelegate>*)self.nextResponder。这告诉编译器 nextResponder 的类型是 UIViewController 类,该类确认 UITableViewDelegate 协议。

于 2012-06-11T15:13:47.560 回答
0

您可以按如下方式转换为协议:

tableView.delegate = (id<UITableViewDelegate>)self.nextResponder
于 2012-06-11T15:01:38.910 回答