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 } ];