我无法对我的一个 NSMutableArrays 进行排序。
数组设置如下
classesArray = [[NSMutableArray alloc] initWithObjects:nil];
NSMutableArray *tmpClassMembers = [[[NSMutableArray alloc] initWithObjects:nil] autorelease];
//tmpClassMembers gets populated
//hold an array with the class ID, name and class members.
//classID and classname are just strings essentially
NSMutableArray *tmpClass = [[NSMutableArray alloc] initWithObjects:msClass.ClassId,msClass.ClassName,tmpClassMembers,nil];
//add the new class to the main class array
[classesArray addObject:tmpClass];
一个示例顺序是(这些存储在数组中的元素 [1] 中(类名)
classesArray[0][1] = "3. Science 5B"
classesArray[1][1] = "4. Geography 6S"
classesArray[2][1] = "2. Biology 6T"
classesArray[3][1] = "1. English 1A"
我尝试过使用块排序,但它似乎没有做任何事情。我期望它根据数组中的第二个元素([1])进行排序。这应该是类名。
NSArray *sortedArray = [classesArray sortedArrayUsingComparator:^(id a, id b) {
NSString *numA = [a objectAtIndex:1]; //eg: "1. English 1A"
NSString *numB = [b objectAtIndex:1]; //eg: "3. Science 5B
//NSLog(@"a=%@, b=%@", numA, numB);
return [numB compare:numA];
}];
我期望 classesArray 的顺序如下
classesArray[0][1] = "1. English 1A"
classesArray[1][1] = "2. Biology 6T"
classesArray[2][1] = "3. Science 5B"
classesArray[3][1] = "4. Geography 6S"
所以基本上它应该按字符串排序 - 它肯定会看到每个字符串都以一个数字开头,然后按那个排序?
我无法将数字作为要排序的 ID,因为 id 实际上类似于 DF345345-ERERT56 并且没有任何相关性。
我哪里错了?!