我可以使用NSMutableArray insertObjects:atIndexes以不同的顺序插入多个项目吗?

猎户座爱德华兹

我想NSMutableArray使用insertObjects:atIndexes在一次操作中将一系列项目插入,然后同时对项目进行排序-但我无法弄清楚如何构建正确的项目NSIndexSet像这样:

NSMutableArray* target = [[NSMutableArray alloc]initWithObjects:@0, @100, nil];
NSArray* itemsToInsert = @[@50, @10];

NSMutableIndexSet* indexes = [[NSMutableIndexSet alloc] init];
// ??? what goes in indexes?

[target insertObjects:itemsToInsert atIndexes:indexes];
XCTAssertEqualObjects((@[@0, @10, @50,  @100]), target);

苹果文档并没有真正解释它是如何工作的-但是它意味着索引集将被顺序处理...如果是这种情况,那么从逻辑上我应该这样做:

[indexes addIndex:1]; // insert @50 at position 1
[indexes addIndex:1]; // insert @10 at position 1, pushing @50 up to position 1

问题是,这不起作用-插入引发异常 [NSMutableArray insertObjects:atIndexes:]: count of array (2) differs from count of index set (1)

我也尝试过:

  • 插入索引范围-失败,出现相同的异常
  • 插入的索引1, 2-的结果不正确@[@0, @50, @10, @100]
  • 插入的索引2, 1-这有不正确的结果@[@0, @50, @10, @100]

这可能吗?我可以通过在插入项目之前对项目列表进行预排序来解决此问题,但是不必创建列表的临时副本会很好

脚本

一个NSIndexSet只包含“独特的无符号整数”,存储“作为排序的区间”。您正在尝试使用索引集将无法正常工作。

如果使用数组代替保存索引,则可以并行遍历值和索引并insertObject:atIndex:重复使用通过将类别方法添加到可以简化此过程NSMutableArray,例如,OEInsertObjects:atOrderedIndexes:然后您的第一种方法(在索引1处重复插入)将起作用,尽管这对我来说似乎很奇怪,因为您始终必须考虑运动。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用NSMutableArray insertObjects:atIndexes以不同的顺序插入多个项目吗?

来自分类Dev

我可以使用python CSP吗?

来自分类Dev

我可以使用迭代器吗?

来自分类Dev

我可以使用通配符替换吗

来自分类Dev

我可以使用RTF格式吗?

来自分类Dev

骨骼可以使用我的插件吗?

来自分类Dev

我可以使用与我使用的库不同的 _ITERATOR_DEBUG_LEVEL 链接项目吗?

来自分类Dev

我可以使用MapStruct控制映射顺序吗?

来自分类Dev

我可以使用相同的URL,但可以使用不同的动态细分吗?

来自分类Dev

我可以使用mapply拟合不同的回归模型吗?

来自分类Dev

我可以使用Windows窗体控件的多个副本吗?

来自分类Dev

我可以使用JS等待多个CSS动画吗?

来自分类Dev

我可以使用Siege设置多个标题吗?

来自分类Dev

我可以使用geom_text_repel控制相同值的多个标签的顺序吗?

来自分类Dev

我可以使用界面在不同项目的ViewModel之间导航吗

来自分类Dev

我可以使用分支机构来持有不同但相关的项目吗?

来自分类Dev

使用我的方法时,我可以使警告静音吗?

来自分类Dev

我可以使用AWS Lambda满足我的要求吗?

来自分类Dev

我可以使用cpupowerd超频我的cpu吗?

来自分类Dev

我可以使用 OpenVPN 更改我的位置吗?

来自分类Dev

我可以使用systemd运行多个进程(每个进程具有不同的端口)吗?

来自分类Dev

我可以使用restfull框架让Django使用api吗

来自分类Dev

我可以使用insertAdjacentHTML插入DOM元素

来自分类Dev

我可以使用Google Translate使我的Raspberry Pi按需使用不同的语言说吗?

来自分类Dev

我可以使用LeafLet更改GeoJSON LineString的fillColor吗?

来自分类Dev

我可以使用其他值扩展枚举吗?

来自分类Dev

我可以使用ICC编译几种CPU架构吗?

来自分类Dev

我可以使用RestKit和Realm.io吗?

来自分类Dev

我可以使用https进行本地开发吗?

Related 相关文章

  1. 1

    我可以使用NSMutableArray insertObjects:atIndexes以不同的顺序插入多个项目吗?

  2. 2

    我可以使用python CSP吗?

  3. 3

    我可以使用迭代器吗?

  4. 4

    我可以使用通配符替换吗

  5. 5

    我可以使用RTF格式吗?

  6. 6

    骨骼可以使用我的插件吗?

  7. 7

    我可以使用与我使用的库不同的 _ITERATOR_DEBUG_LEVEL 链接项目吗?

  8. 8

    我可以使用MapStruct控制映射顺序吗?

  9. 9

    我可以使用相同的URL,但可以使用不同的动态细分吗?

  10. 10

    我可以使用mapply拟合不同的回归模型吗?

  11. 11

    我可以使用Windows窗体控件的多个副本吗?

  12. 12

    我可以使用JS等待多个CSS动画吗?

  13. 13

    我可以使用Siege设置多个标题吗?

  14. 14

    我可以使用geom_text_repel控制相同值的多个标签的顺序吗?

  15. 15

    我可以使用界面在不同项目的ViewModel之间导航吗

  16. 16

    我可以使用分支机构来持有不同但相关的项目吗?

  17. 17

    使用我的方法时,我可以使警告静音吗?

  18. 18

    我可以使用AWS Lambda满足我的要求吗?

  19. 19

    我可以使用cpupowerd超频我的cpu吗?

  20. 20

    我可以使用 OpenVPN 更改我的位置吗?

  21. 21

    我可以使用systemd运行多个进程(每个进程具有不同的端口)吗?

  22. 22

    我可以使用restfull框架让Django使用api吗

  23. 23

    我可以使用insertAdjacentHTML插入DOM元素

  24. 24

    我可以使用Google Translate使我的Raspberry Pi按需使用不同的语言说吗?

  25. 25

    我可以使用LeafLet更改GeoJSON LineString的fillColor吗?

  26. 26

    我可以使用其他值扩展枚举吗?

  27. 27

    我可以使用ICC编译几种CPU架构吗?

  28. 28

    我可以使用RestKit和Realm.io吗?

  29. 29

    我可以使用https进行本地开发吗?

热门标签

归档