2016-01-29 33 views
0

我发现一些解决方案声明单元格为“var”,其他都有“let”。Var或让dequeueReusableCellWithIdentifier方法在swift中?

var cell : MenuCell? = tableView.dequeueReusableCellWithIdentifier("cell") as! MenuCell! 

哪个应该使用“var”或“let”?在此先感谢。

+0

你必须使用let – vaibby

+0

@avijit如果单元格是在故事板本身,那么它怎么会是零? –

+0

你是不是把单元格改成其他类? – vaibby

回答

1

一般来说,如果你没有变异的情况下,那么它应该是声明为let

例如,在你的情况下,你不会再指定cell variable.ie cell = aNewCell。所以你应该声明它为let

确认你想改变它(为其指定一个新的引用),然后声明它为var,如下所示。

var cell1 = tableView.dequeueReusableCellWithIdentifier("cell") as! MenuCell 
let cell2 = tableView.dequeueReusableCellWithIdentifier("cell") as! MenuCell 
cell1 = cell2 
+0

你正在得到哪个错误? – san

+0

值类型永远不能nil.comparison是不允许的 –

+0

你能提供你得到这个错误的确切代码行吗?或者可能您可以使用整个方法的代码发布一个新问题,在这个代码中出现此错误? – san

0

如果您想知道如果您想要动态设置类,然后使用var,您将永远不会将该变量更改为另一个类的对象,所以最好使用let。

1

用“让”这个......因为你并不需要在本地方法来改变变量值和让与VAR的概念是指这个click here

0

我会建议使用“let”语句,当你宣布你是说,它不会与其他值重新初始化常量(我想如果你从dequeueReusableCellWithIdentifier("cell")获得手机,你不会再得到它在这个方法中)。如果某个地方你会创建任何错误,并以其他值重新初始化 - “let”会向你显示一个错误,你正在做错的事情 - 错误修复很容易,另一方面,“var”将采取它并消失。这些错误很难发现,并且可能不会出现很长时间。

多数民众赞成为什么方法“只使用你现在需要的功能”比使用更多的扩展只是为了防止这种错误。

此外让变量更优化,以便代码工作比var变量更快。