2011-01-23 111 views
2

在UITableView中设置单元格时,最好是使用if语句还是switch语句作为一般练习?最好在cellForRowAtIndexPath中使用if语句或switch语句吗? - UITableView

我在此讨论cellForRowAtIndexPath和其他UITableView方法,而不是一般的编程问题。

+0

这与“一般习惯”有什么不同? – 2011-01-23 18:04:31

+0

我不知道,这就是我要问的。我想要一个能够告诉我是否重要的​​人的回答。 – 2011-01-23 18:06:17

回答

7

因为我太老了,所以担心性能,我可能会这样做............ 但等待:现代编译器,很简单,“接管”并优化/编译他们想要的。

在我看来

所以,真实,深刻地没什么区别,因为这个原因:

你不知道现代的编译器在做什么,所以这是没有意义的担心写它的一种方式或其他方式

我倾向于更喜欢“如果”而不是复杂的现代开关,纯粹是作为一种风格的问题,并挥舞旗帜的老式。

你可能会说:尽量在每条路径上尽可能早地从例程中“返回”,这样它就不会在结尾处毫无意义地遍历东西。我对这样的事情失去了睡眠,这是一个很好的问题。

一点 ..在iOS的编程存在做事以同样的方式别人做他们巨大的价值。我讨厌这个事实,但是,这是真的!因此,在具体的问题,如果你可以一口气Apple成语 - 确实如此。

3

它没有任何区别。

您应该确保您尝试通过所提供的UITableView实例上的dequeueReusableCellWithIdentifier方法重用一个“兼容”单元,但除此之外您只需要返回一个有效的UITableViewCell - 如何完成该端点是完全的无关。

这就是说,作为一些建议,我会尽量保持“轻”的东西,以确保用户界面保持响应。 (即:不要试图在这种方法中询问复杂的数据结构 - 事先做所有事情,只需从cellForRowAtIndexPath内的相关数据源获取结果。)

1

对于每种方法,可能有很多原因,还有其他很多解决方案。这是我的意见:

如果您设置固定数量的元素(枚举),请使用枚举类型命名并使用switch语句。它非常结构化,易于阅读,并且有一些编译器设置,如果你错过了一个案例,你会得到一个警告。

如果打开/无限制/不那么结构良好的选择,请使用if。有时,不止一个单元来自相同的代码块,有时使用帮助对象等。

与每个代码一样:保持简单,易读和易于维护。 如果开关这里不是性能决定性的决定。