6

辞書オブジェクトを使用してキーに基づいて値をソートするという問題に直面しています。実際に私が保存しているのは、そのディクショナリに異なるデータ型を持つ各ディクショナリオブジェクトです。すべてのデータ型は文字列として取得され、この文字列型を特定のデータ型に変換して並べ替える方法は万力です。私のコードと出力は次のとおりです。これで私を助けてください。

-(IBAction)PriceSort:(id)sender
{
    NSSortDescriptor * sort = [[NSSortDescriptor alloc] initWithKey:@"Price" ascending:true] ;
    NSArray *sa = [symbolArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
    NSLog(@"price=%@",sa);

}

出力 {

    volume = 2496752;

    Yield = "10.49";

    MarCap = 829;

    Price = "0.715";

    Symbol = SAIPI;

},
4

2 に答える 2

10
 sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"price"
                                                 ascending:YES selector:@selector(localizedStandardCompare:)] ;

これを交換して試してみてください。うまくいくことを願っています。

于 2013-03-23T08:23:46.210 に答える
4
-(void)sort
{
    //This is the array of dictionaries, where each dictionary holds a record
    NSMutableArray * array; 
    //allocate the memory to the mutable array and add the records to the arrat

    // I have used simple bubble sort you can use any other algorithm that suites you
    //bubble sort
    //
    for(int i = 0; i < [array count]; i++)
    {
        for(int j = i+1; j < [array count]; j++)
        {
            NSDictionary *recordOne = [array objectAtIndex:i];
            NSDictionary *recordTwo = [array objectAtIndex:j];

            if([[recordOne valueForKey:@"price"] floatValue] > [[recordTwo valueForKey:@"remaining"] floatValue])
            {
                [array exchangeObjectAtIndex:i withObjectAtIndex:j];
            }
        }   
    }

    //Here you get the sorted array
}

お役に立てれば。

于 2013-03-23T08:23:23.757 に答える