2012-11-14 26 views
2

我使用創造了一個NSIndexPath一個NSIndexPath:如何設置後,已創建

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 

現在我想指數直通一個UITableView通過修改這條道路,我無法找到設置值的任何API調用在NSIndexPath

似乎是一個巨大的浪費,以每次分配一個新的NSIndexPath,特別是具有作爲實際上,我用它來撥打電話,不分配任何內存(一種除協議)

回答

2

我找不到任何在NSIndexPath中設置值的API調用。

因爲沒有--NSIndexPath是不可變的。

看起來像一個巨大的浪費,每次

它分配一個新的NSIndexPath。對不起。如果你關心這個,把它包裝成一個@autoreleasepool { }

+0

我可以想象它們會爲常見路徑使用一些對象池,並且您不會每次都獲得新對象。與數字相同 –

+0

@ Daij-Djan是的,這是一種常用的優化方法(NSString也是這樣做的),所以它最有可能用於實際上。 – 2012-11-15 05:47:36

2

NSIndexPath是不可變的。每次創建一個新的。然後,如果您遇到性能問題,請使用工具來確定是否創建索引路徑是問題的一部分。

您已經驗證只有在此之後創建索引路徑是你應該考慮創建的NSIndexPath一個子類,都有自己的存儲的索引並提供改變方法的一個問題。 (UIKit在內部執行類似於UIMutableIndexPath的內部操作,但該類不公開)。