微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/iOS/335173.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐