0

UIView内で、self.nextResponder(ビューのコントローラーを指す)をキャストして、下の3行目のコンパイラー警告を回避するにはどうすればよいですか?

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

次のようにプロトコルにキャストできます。

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

UITableViewDelegateはプロトコルであるため、次のようにキャストできます

tableView.delegate =(id <UITableViewDelegate>)self.nextResponder。これは、self.nextResponderがUITableViewDelegateプロトコルを確認する任意のオブジェクトであることをコンパイラーに通知します。

nextResponderがUIViewControllerなどの特定のクラスであることがわかっている場合は、次のように記述できます。

tableView.delegate =(UIViewController <UITableViewDelegate> *)self.nextResponder。これは、nextResponderがUITableViewDelegateプロトコルを確認するタイプUIViewControllerクラスであることをコンパイラーに通知します。

于 2012-06-11T15:13:47.560 に答える