2015-07-22 65 views
2

我在視圖控制器內使用UITableView。致命錯誤:意外地發現零,而解包一個可選值 - 使用UITableView

在viewDidLoad中,我有這樣的:

var PlayersUserDefault = NSUserDefaults.standardUserDefaults() 
     if (PlayersUserDefault.arrayForKey("playersKey") != nil){ 
      players = PlayersUserDefault.arrayForKey("playersKey") 
     } 

這個代碼給我錯誤:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return players!.count 
} 

fatal error: unexpectedly found nil while unwrapping an Optional value

我不明白這一點,有人可以幫助我。對不起,我的英文不太好。

+0

嘗試打印'players!.count'我猜這是返回'nil' – Aladin

+0

@Aladin - 是的。我該怎麼辦?當我嘗試打開包含UITableView的視圖控制器時出現錯誤。 –

+0

你能分享'players'的聲明嗎? – Aladin

回答

1

問題是如果密鑰不包含值,NSUserDefaults返回nil。 NSUserDefaults方法如objectForKeyarrayForKey返回可選項。

如果密鑰不存在,則返回nil。

試試這個:

func tableView(tableView: UITableView, 
    numberOfRowsInSection section: Int) -> Int 
{ 
    return players?.count ?? 0 
} 

使用的「無合併運算符」,如果它不是零,或之後的值返回值?如果它是零。

+0

謝謝,工作!你還可以檢查我的新問題嗎? –

+2

不要編輯您的原始問題以提出新問題。問一個新問題!這個網站被許多人使用,他們在過去的問題中找到有用的答案。通過編輯您的原始問題,您可以銷燬該歷史。另外,如果我的答案符合您的需求,請接受它。 (點擊勾號。) –

相關問題