我有一个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 } ];