2

我创建了一个 NSIndexPath 使用:

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

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

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

4

2 回答 2

2

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

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

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

这是。对此感到抱歉。@autoreleasepool { }如果你关心这个,把它包装成一个。

于 2012-11-14T20:55:47.327 回答
2

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

只有在您确认创建索引路径是一个问题之后,您才应该考虑创建一个子类,NSIndexPath该子类具有自己的索引存储并提供变异方法。(UIKit 在内部使用 做类似的事情UIMutableIndexPath,但该类不是公共的。)

于 2012-11-14T20:57:12.100 回答