反转NSMutableArray

42

如何最好/正确地反转NSMutableArray?

7个回答

106
themutablearray=[[[themutablearray reverseObjectEnumerator] allObjects] mutableCopy];

22
“[[theMutableArray reverseObjectEnumerator] allObjects]”应该改为“[[[theMutableArray reverseObjectEnumerator] allObjects] mutableCopy]”。 - Fahim Parkar

32
theMutableArray=[[[theMutableArray reverseObjectEnumerator] allObjects] mutableCopy];

9

这是 Reverse NSMutableArraySwift 版本

mutablearray =  NSMutableArray(array: YourMutablearray.reverseObjectEnumerator().allObjects).mutableCopy() as! NSMutableArray

在纯 Swift 中,您可以使用 reverse() 方法。

let array = ["Apples", "Peaches", "Plums"]

for item in array.reverse() {
     print("Found \(item)")
}

Source: hacking with swift

------ OR ------

var a = [String]()

a.append("1")
a.append("2")
a.append("3")

print(Array(a.reverse())) // In swift 3.0, method is `reversed()`

谢谢,但它不是纯Swift,使用了NSObject。 - some_id

1

对于Swift 3

let reversedArray = NSArray()

reversedArray =  NSMutableArray(array:TableDataArr.reverseObjectEnumerator().allObjects).mutableCopy() as! NSMutableArray

0

为什么要这么复杂?使用这个:

Swift 3:

let tasksArray = NSArray() 
var reversedTaskArray = tasksArray.reversed() as NSArray

0

NSArray *Farr = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7"];

NSArray *Farr = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7"];

NSMutableArray *Reversearr1 = [[NSMutableArray alloc]init];
NSInteger j=[Farr count];
for (int i=1; i<=j; i++) {
    [Reversearr1 addObject:[Farr objectAtIndex:j-i] ];
}

0

你可以借助reverseObjectEnumerator方法来翻转NSMutableArray。它会返回一个NSArray,然后你可以使用这个NSArray创建一个新的NSMutableArray。

NSArray* reversedArray = [[TableDataArr reverseObjectEnumerator] allObjects];
TableDataArr = [NSMutableArray arrayWithArray:reversedArray];

3
不需要第二行,使用mutableCopy:NSMutableArray* reversedArray = [[[TableDataArr reverseObjectEnumerator] allObjects] mutableCopy]; (翻译已按要求进行,无其他解释或内容返回。) - emrahgunduz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接