我有一個UIViewController的子類,它負責一個UIWebView。如何提示編譯器使用UIView子類
由於這是一個簡單的例子,我重寫-(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
。
NOW警告容易與鑄造解決...
[(UIWebView *)self.view loadHTMLString:HTMLString baseURL:baseURL];
...但我想要做的是提供的接口類型正確提示。我試着在MyViewController.h
重寫view
屬性,但這種攪得太編譯:
warning: property 'view' type does not match super class 'UIViewController' property type
有沒有告訴編譯器(和我的同伴)的任何方式,這是我在做什麼,而且我知道這是我在做什麼,這一切都好嗎? (如果不是我想我會跟投堅持下去。)
TIA
編輯:我試圖重新聲明的視圖屬性按marcus.ramsden的回答是:這消除了警告(和需要的演員),但停止了出現的視圖!我不知道爲什麼這應該作爲控制器仍然會返回一個UIView(子類)時詢問它...
爲什麼不添加`UIWebView`實例作爲子視圖? – knuku 2010-11-23 10:09:07
@ NR4TR兩個原因:額外的UIView除了複雜性外不會增加任何東西,而且我希望有一個額外的@屬性來保存對web視圖的引用。只是直接使用UIWebView並在流程中重新使用視圖屬性才更爲簡潔。 (我所需要的只是一種告訴編譯器的方式,所以我可以取消演員陣容。) – 2010-11-23 10:38:49