如何在创建NSIndexPath后设置它

时间:2012-11-14 20:50:08

标签: ios macos uitableview nsindexpath

我使用:

创建了一个NSIndexPath
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];

现在我想通过修改此路径来通过UITableView进行索引,我找不到任何在NSIndexPath中设置值的API调用

每次分配新的NSIndexPath似乎都是一个巨大的浪费,特别是因为我实际上正在使用它来进行不分配任何内存的调用(对协议的补充)

2 个答案:

答案 0 :(得分:2)

  

我找不到任何在NSIndexPath中设置值的API调用。

因为没有 - NSIndexPath是不可变的。

  

每次分配新的NSIndexPath似乎都是一个巨大的浪费

是的。对不起。如果您关心这一点,请将其包装成@autoreleasepool { }

答案 1 :(得分:2)

NSIndexPath是不可变的。每次只创建一个新的。然后,如果您遇到性能问题,请使用Instruments来确定创建索引路径是否是问题的一部分。

只有在确认创建索引路径是个问题之后才应考虑创建NSIndexPath的子类,该子类具有自己的索引存储并提供变异方法。 (UIKit在UIMutableIndexPath内部执行类似的操作,但该类不公开。)