2

だから私は約180の辞書を持つ配列を持っています.各辞書には5つのオブジェクトがあります(3つの文字列と2つのNSNumbers)

各辞書をそのプロパティの 1 つによって並べ替えようとしていますが、これは文字列に対しては正常に機能しますが、数値に関しては正しく並べ替えられません。

 -(void) sortArrayBy:(int)sortingNumber {

    switch (sortingNumber) {
            case 0:
                NSLog(@"sorting by atomicnumber");
                [self.elementsArray sortUsingDescriptors:[NSArray arrayWithObjects:
 // When sorting this comes back the same each time but not in the correct order
                [NSSortDescriptor sortDescriptorWithKey:@"ATOMIC NUMBER" ascending:YES], nil]];
                break;
            case 1:
                NSLog(@"sorting by name");
                [self.elementsArray sortUsingDescriptors:[NSArray arrayWithObjects: [NSSortDescriptor sortDescriptorWithKey:@"ELEMENT NAME" ascending:YES], nil]];
                break;
            case 2:
                NSLog(@"sorting by symbol");
                [self.elementsArray sortUsingDescriptors:[NSArray arrayWithObjects: [NSSortDescriptor sortDescriptorWithKey:@"CHEMICAL SYMBOL" ascending:YES], nil]];
                break;
            case 3:
                NSLog(@"sorting by mass");
 // When sorting this comes back the same each time but not in the correct order
                [self.elementsArray sortUsingDescriptors:[NSArray arrayWithObjects: [NSSortDescriptor sortDescriptorWithKey:@"ATOMIC MASS" ascending:YES], nil]];
                break;

            default:
                break;
        }
4

1 に答える 1