将UIView nextResponder转换为UITableView委托

时间:2012-06-11 14:56:20

标签: objective-c uiview uiviewcontroller casting delegates

在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];

由于

2 个答案:

答案 0 :(得分:0)

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

tableView.delegate = (id<UITableViewDelegate>)self.nextResponder

答案 1 :(得分:0)

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

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

如果您知道nextResponder属于任何类似的类,请说UIViewController,您可以写为

tableView.delegate =(UIViewController&lt; UITableViewDelegate&gt; *)self.nextResponder。 这告诉编译器nextResponder是UIViewController类,它确认了UITableViewDelegate协议。