gpt4 book ai didi

ios - 从 NSMutableArray 中删除对象时出现的奇怪问题

转载 作者:行者123 更新时间:2023-11-28 22:19:19 25 4
gpt4 key购买 nike

我用 4 个对象初始化 NSMutableArray。然后我在第一个索引之后再添加 2 个对象。然后我要删除那两个新添加的对象。从理论上讲,很明显在所有操作之后我将取回我首先创建的原始数组,但是在删除对象之后我得到了奇怪的结果。

代码:-

- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableArray *arr = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4", nil];

for (NSString *str in arr)
{
NSLog(@"%@",str);
}

[arr insertObject:@"1.1" atIndex:1];
[arr insertObject:@"1.2" atIndex:2];

for (NSString *str in arr)
{
NSLog(@"New %@",str);
}

[arr removeObjectAtIndex:1];
[arr removeObjectAtIndex:2];

for (NSString *str in arr)
{
NSLog(@"Old %@",str);
}
}

输出:-

2013-12-28 14:42:02.703 ArrayDemo[1687:11303] 1
2013-12-28 14:42:02.704 ArrayDemo[1687:11303] 2
2013-12-28 14:42:02.705 ArrayDemo[1687:11303] 3
2013-12-28 14:42:02.705 ArrayDemo[1687:11303] 4
2013-12-28 14:42:02.705 ArrayDemo[1687:11303] New 1
2013-12-28 14:42:02.706 ArrayDemo[1687:11303] New 1.1
2013-12-28 14:42:02.706 ArrayDemo[1687:11303] New 1.2
2013-12-28 14:42:02.706 ArrayDemo[1687:11303] New 2
2013-12-28 14:42:02.707 ArrayDemo[1687:11303] New 3
2013-12-28 14:42:02.707 ArrayDemo[1687:11303] New 4
2013-12-28 14:42:02.708 ArrayDemo[1687:11303] Old 1
2013-12-28 14:42:02.708 ArrayDemo[1687:11303] Old 1.2
2013-12-28 14:42:02.709 ArrayDemo[1687:11303] Old 3
2013-12-28 14:42:02.710 ArrayDemo[1687:11303] Old 4

我不明白为什么会这样???有谁知道吗??任何帮助将不胜感激...

提前致谢....

最佳答案

初始数组:

    1, 2, 3, 4

[arr insertObject:@"1.1"atIndex:1] 之后:

    1, 1.1, 2, 3, 4

[arr insertObject:@"1.2"atIndex:2] 之后:

    1, 1.1, 1.2, 2, 3, 4

[arr removeObjectAtIndex:1] 之后:

    1, 1.2, 2, 3, 4

[arr removeObjectAtIndex:2] 之后

    1, 1.2, 3, 4

所以一切都是正确的。如果你想删除元素你之前插入,然后你必须以相反的顺序删除它们:

[arr removeObjectAtIndex:2];
[arr removeObjectAtIndex:1];

在这种情况下,最终结果将再次是 1, 2, 3, 4

关于ios - 从 NSMutableArray 中删除对象时出现的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812863/

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