2015-07-22 59 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

不要编辑您的原始问题以提出新问题。问一个新问题!这个网站被许多人使用,他们在过去的问题中找到有用的答案。通过编辑您的原始问题,您可以销毁该历史。另外,如果我的答案符合您的需求,请接受它。 (点击勾号。) –

相关问题