objective-c - NSMutableArray - 禁用重新索引删除

标签 objective-c nsmutablearray foundation

例如我有数组:

NSMutableArray *array = [NSMutableArray arrayWithObjects:@1, @2, @3, nil];

数组看起来像这样:

0 => @1
1 => @2
2 => @3

然后我删除索引 0 处的对象

[array removeObjectAtIndex:0];

...和 ​​NSMutableArray 自动重新索引数组,所以数组看起来像这样:

0 => @2
1 => @3

问题: 是否可以在删除时禁用自动数组重建索引?或者是否有类似的类可以用来代替 NSMutableArray?谢谢。

最佳答案

您不能有不连续的索引,因此最好的机会是使用占位符对象来替换已删除的索引。有点像

NSMutableArray *array = [NSMutableArray arrayWithObjects:@1, @2, @3, nil];
[array replaceObjectAtIndex:0 withObject:[NSNull null]];

现在你将拥有

0 => [NSNull null]
1 => @2
2 => @3

因此保留了非空对象的索引。

关于objective-c - NSMutableArray - 禁用重新索引删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383960/

相关文章:

ios - 日历:获取日期组件,奇怪的情况

objective-c - 将字节序交换为有符号整数的适当方法是什么?

ios - 休息套件 : addSQLitePersistentStoreAtPath produce extra record

ios - 在 iOS 6 中以编程方式打开 map 应用

ios - 在 Deprecated sizeWithFont :minFontSize:actualFontSize to get the change in font size? 中复制 actualFontSize 指针返回

objective-c - 无法将 UIImage 项目添加到 NSMutableArray - EXC_BAD_ACCESS 错误

ios - 从包含 nsdictionary 的 nsmutablearray 中删除重复项

ios - 无法将对象添加到单例中的 nsmutablearray

ios - URLSession 最佳实践 - 多个请求

iphone - 在 iOS(某些版本)中切换声音音量时不一致的 OpenAL 爆音伪像