iOS:如何在已排序的NSMutableArray中查找插入位置

前端之家收集整理的这篇文章主要介绍了iOS:如何在已排序的NSMutableArray中查找插入位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个NSMutableArray排序对象,它们显示在UITableView中.

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

我找不到任何系统消息告诉我正确的插入索引到我需要更新表视图的数组.

我能找到的最好的是:

>添加新对象
>排序
>使用旧的数组副本,找到新对象的位置(需要搜索)

要么

>写我自己的插入位置搜索

当然,必须有一条消息来找到排序数组中的插入位置?或者我错过了一些明显的东西?

解决方法

您可以在整个数组上使用indexOfObject:inSortedRange:options:usingComparator:方法.此方法对您传递的范围执行二进制搜索,并在使用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
    }
];

猜你在找的iOS相关文章