2014-02-05 68 views
1

我有一個問題獲取UIWebView作爲插座。我已經完成了我的研究,這是我採取的步驟。與Outlet和委託UIWebView導致NSUnknownKeyException

使用的XCode 5.0.1

  • 創建用XIB1一個視圖控制器名爲WebViewController

  • 驗證fileowner是WebViewController

  • 添加一個UIWebView向廈門國際銀行

  • 集的UIWebView委託給FileOwner WebViewController

  • 改性WebViewController.h,加入

  • 添加下面的方法來WebViewController.m

    1. (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    2. (void)webViewDidFinishLoad:(UIWebView *)webView
    3. (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
    4. (void)webViewDidStartLoad:(UIWebView *)webView
  • 只要我推WebViewController我得到一個NSUnknownKeyException上myWebView創建從一個UIWebView來myWebView的出口(在.m文件)

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<WebViewController 0x19ff75a0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key myWebView.' 

重要提示:如果我只是刪除myWebView插座,那麼我可以推動WebViewController罰款。當然,我無法修改UIWebView,但沒有插座。

任何想法這裏發生了什麼?我也在一個新的/空白項目中遇到同樣的問題。

更新: - 所以WebViewController.xib FIleOwner自定義類是:WebViewController,InterfaceBuilder下 驗證 - 創建在運行時是這樣

[[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil]; 
  • 斷點在WebViewController.m設定在initWithNibName永遠不會觸發。
+0

你能顯示完整的錯誤信息嗎? – nvl

+0

更新錯誤消息 – Halsafar

+0

我沒有在'WebViewController'中看到你的代碼,你會添加嗎? – Gavin

回答

0

從錯誤信息,看來你在廈門國際銀行UIWebView已經連接到插座命名爲myWebView,但出口變量不是在.M或.H;嘗試右鍵點擊xib文件中的UIWebView,然後移除連接的插座。

編輯

如果這招沒有奏效。嘗試從xib手動刪除myWebView。這裏的步驟:

  • 右擊廈門國際銀行,點擊Open As,點擊Source Code
  • 您將獲得廈門國際銀行的XML代碼,試圖找到(按Ctrl + F),使用myWebView關鍵字
  • 刪除
+0

是的,我意識到這就是這個錯誤信息的意思,但這顯然不是這次的原因。刪除插座會使其工作,並將其重新添加到NSUnknownKeyException中失敗。 – Halsafar

+0

我已經更新了我的答案,請檢查一下 – nvl

+0

我認爲你不明白。我已經可以取消出路了,沒有問題。卸下插座會使例外消失。然而,我需要這個插座。重新加入會導致異常。 – Halsafar

0

確保您已將WebViewController添加到目標中。點擊WebViewController.m檢查目標成員。確保選中複選框。

enter image description here

+0

我已經驗證他們正在構建目標。此外,僅僅通過刪除UIWebView myWebView插座,我可以推這個WebViewController就好了。 – Halsafar

+0

您是否在該XIB的另一個插座與控制器連接? – Gago

+0

WebViewController.xib只有一個UIWebView。 UIWebView有1個出口,委託 - >文件所有者和1個引用出口myWebView->文件所有者。 – Halsafar