我使用:
创建了一个NSIndexPathNSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
现在我想通过修改此路径来通过UITableView进行索引,我找不到任何在NSIndexPath中设置值的API调用
每次分配新的NSIndexPath似乎都是一个巨大的浪费,特别是因为我实际上正在使用它来进行不分配任何内存的调用(对协议的补充)
答案 0 :(得分:2)
我找不到任何在NSIndexPath中设置值的API调用。
因为没有 - NSIndexPath是不可变的。
每次分配新的NSIndexPath似乎都是一个巨大的浪费
是的。对不起。如果您关心这一点,请将其包装成@autoreleasepool { }
。
答案 1 :(得分:2)
NSIndexPath
是不可变的。每次只创建一个新的。然后,如果您遇到性能问题,请使用Instruments来确定创建索引路径是否是问题的一部分。
只有在确认创建索引路径是个问题之后才应考虑创建NSIndexPath
的子类,该子类具有自己的索引存储并提供变异方法。 (UIKit在UIMutableIndexPath
内部执行类似的操作,但该类不公开。)