iOS:如何在sorting的NSMutableArray中查找插入位置

我有一个NSMutableArray的sorting对象,它们显示在UITableView中。

我想插入一个新的对象到数组中,并更新表视图 – 这需要新插入的对象的索引。

我无法find任何系统消息告诉我正确的插入索引到数组中,我需要更新表视图。

我能find的最好的是:

  • 添加新的对象
  • 分类
  • 使用数组的旧副本,find新对象的位置(这需要search)

要么

  • 写我自己的插入位置的search

当然,必须有一个消息来findsorting数组中的插入位置? 还是我错过了一些明显的东西?

你可以在整个数组中使用indexOfObject:inSortedRange:options:usingComparator:方法。 此方法在您传递的范围内执行二进制search,并在使用NSBinarySearchingInsertionIndex选项时为您提供插入点:

 NSUInteger insPoint = [myArray indexOfObject:toInsert inSortedRange:NSMakeRange(0, [myArray count]) options:NSBinarySearchingInsertionIndex usingComparator:^(id lhs, id rhs) { return // return the result of comparing two objects } ];