"Reverse" NSMutableArray's elements order

17 浏览
0 Comments

"Reverse" NSMutableArray's elements order

有没有办法将NSMutableArray中的元素反转?

0
0 Comments

问题的出现原因:用户想要将NSMutableArray的元素顺序进行反转,但是不知道有什么简单的方法可以实现。

解决方法:使用exchangeObjectAtIndex:withObjectAtIndex:函数来交换NSMutableArray中的元素位置,从而实现反转。

具体代码如下:

NSMutableArray* array = [NSMutableArray arrayWithObjects:@"1", @"2", @"3",nil];
for(i = 0, len = (int)[array count]/2; i < len; i++)
{
  [array exchangeObjectAtIndex:i withObjectAtIndex:([array count] - i - 1)];
}

希望以上代码可以解决问题,但是没有打开编译器来测试,希望可以奏效。

0
0 Comments

问题:

在Objective-C中,如何反转一个NSArray?

原因:

NSArray是一个有序的集合,它的元素顺序是固定的。然而,在某些情况下,我们可能需要改变数组元素的顺序,特别是需要将数组中的元素按相反的顺序排列时。该问题的出现是因为NSArray本身没有提供直接反转元素顺序的方法。

解决方法:

为了解决这个问题,可以使用NSMutableArray来反转NSArray的元素顺序。NSMutableArray是NSArray的可变版本,它提供了更多的操作方法。

以下是使用NSMutableArray反转NSArray元素顺序的解决方法:

NSMutableArray *reversedArray = [NSMutableArray arrayWithCapacity:[array count]];
NSArray *reverseEnumerator = [array reverseObjectEnumerator];
for (id object in reverseEnumerator) {
    [reversedArray addObject:object];
}

上述代码首先创建了一个可变数组`reversedArray`,然后使用`reverseObjectEnumerator`方法获取一个反向的枚举器。接下来,遍历反向枚举器中的每个元素,并将其添加到可变数组中。最后,`reversedArray`中的元素顺序将与原始数组`array`相反。

通过以上解决方法,我们可以轻松地反转NSArray的元素顺序,满足特定需求。

0