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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...