gpt4 book ai didi

objective-c - NSMutableArray 按顺序添加对象

转载 作者:IT老高 更新时间:2023-10-28 11:34:01 29 4
gpt4 key购买 nike

我有一个 NSMUtableArray 有元素,例如:

a,b,c,e

我想在 c 后面和 e 之前添加一个对象 d。换句话说,我想将一个对象插入到排序数组中。(对象也可以是自定义对象)

我想知道:除了使用for来找位置,还有其他方法可以实现吗?最好使用iOS api。

谢谢。

最佳答案

您可以使用 -[NSArray indexOfObject:inSortedRange:options:usingComparator:]在给定当前排序的数组范围的情况下,向 NSArray 询问应插入对象的索引。

例如,假设整个数组是有序的::

NSMutableArray *array = …;
id newObject = …;
NSComparator comparator = …;

NSUInteger newIndex = [array indexOfObject:newObject
inSortedRange:(NSRange){0, [array count]}
options:NSBinarySearchingInsertionIndex
usingComparator:comparator];

[array insertObject:newObject atIndex:newIndex];

由于此方法使用二分查找,因此比遍历数组中的所有元素更有效。

比较器是一个 block 对象,它接收两个 id 类型的对象并返回一个 NSComparisonResult 值。

关于objective-c - NSMutableArray 按顺序添加对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180115/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com