単一のUIWebViewを担当するUIViewControllerのサブクラスがあります。
-(void)loadView
これは単純なケースなので、UIWebViewをオーバーライドしてインスタンス化し、コントローラーのview
プロパティを割り当てます。
- (void)loadView
{
UIWebView *wv = [[[UIWebView alloc] initWithFrame:self.frame] autorelease];
// other configuration here...
self.view = wv;
}
UIWebViewのメソッドを呼び出すまではこれで問題ありません。例えば...
[self.view loadHTMLString:HTMLString baseURL:baseURL];
...コンパイラの警告につながります...
warning: 'UIView' may not respond to '-loadHTMLString:baseURL:'
...view
プロパティがとして宣言されているためUIView
。
今、警告はキャストで簡単に解決されます...
[(UIWebView *)self.view loadHTMLString:HTMLString baseURL:baseURL];
...しかし、私がやりたいのは、インターフェイスに正しいタイプのヒントを提供することです。view
でプロパティをオーバーライドしようとしましたMyViewController.h
が、これもコンパイラを混乱させます。
warning: property 'view' type does not match super class 'UIViewController' property type
これが私がしていることであり、これが私がしていることであり、すべて大丈夫であることを私が知っていることをコンパイラー(および私の仲間)に伝える方法はありますか?(そうでない場合は、キャストに固執すると思います。)
TIA
編集: marcus.ramsdenの答えに従ってビュープロパティを再宣言しようとしました:これにより警告(およびキャストの必要性)がなくなりましたが、ビューがまったく表示されなくなりました!コントローラーが要求されたときにUIView(サブクラス)を返すので、なぜこれが必要なのかわかりません...