我有一个 UIViewController 的子类,它负责一个 UIWebView。
由于这是一个简单的案例,我重写-(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 (子类)......