2012-07-13 35 views
3

性能方面是否有任何優勢取決於您用作標籤的數字?選擇標籤的性能優勢?

我有4套我用標籤標記的對象。有沒有理由不跳過數字?也就是說,我可以有第一盤從0到99,第二盤是從1000 - 1099,第三盤是從2000 - 2099,第四盤是從10萬到100,099?

請注意,我實際上並沒有在我的代碼中使用這麼多的對象。所以我沒有詢問有這麼多對象的性能問題。我只想知道它是否會跳過標籤。它幫助我組織我的代碼和我的想法。任何人都知道標籤是如何存儲的?

回答

1

標記以整數存儲。 iOS上的整數以4字節存儲。無論您使用的是哪個值,將它們與另一個整數值進行比較都需要完全相同的時間。

也就是說,可能存在用於存儲視圖層次的內部優化。舉個例子,Apple可能會選擇使用某種樹結構來將標籤映射到視圖。這部分我無法回答,因爲這些東西是蘋果開發者的內在東西。

你有兩個選擇;

  1. 衡量自己(使用儀器)。
  2. 不要擔心,因爲 的影響無論如何都會接近無形。
3

該標記只存儲爲一個NSInteger屬性。據我所知,-viewWithTag:搜索視圖層次結構,檢查每個視圖的匹配標記,並返回第一個匹配。跳過數字應該沒有性能損失。