2011-01-23 158 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。有時,不止一個單元來自相同的代碼塊,有時使用幫助對象等。

與每個代碼一樣:保持簡單,易讀和易於維護。 如果開關這裏不是性能決定性的決定。