sorting - Sort Descriptor not working in ios -
i used sort descriptor sort nsmutablearray 1 & multiple values,first tried sort price,it sort in other order here code me, create dictionary below code , added nsmutablearray
    for(int i=0;i<[pricearray count];i++)     {         celldict=[[nsmutabledictionary alloc]init];         [celldict setobject:namearray[i] forkey:@"name"];         [celldict setobject:splpricearray[i] forkey:@"percentage"];         [celldict setobject:pricearray[i] forkey:@"price"];         [resultarray addobject:celldict];     } // sort in ascending order     nssortdescriptor *sort =[[nssortdescriptor alloc] initwithkey:@"price" ascending:yes];     nsarray *descriptors = [nsarray arraywithobjects:sort, nil];     nsarray *sortedarray=[resultarray sortedarrayusingdescriptors:descriptors];      nslog(@"result %@ sorted arr %@",resultarray, sortedarray);   and output is:
 result (         {         name = "black eyed peas";         percentage = 0;         price = 80;     },         {         name = "black gram";         percentage = 0;         price = 56;     },         {         name = "channa white";         percentage = 0;         price = 100;     },         {         name = "double beans";         percentage = 0;         price = 95;     },         {         name = "gram dall";         percentage = 0;         price = 100;     },         {         name = "green moong dal";         percentage = 0;         price = 150;     },         {         name = "ground nut";         percentage = 0;         price = 140;     },         {         name = "moong dal";         percentage = 0;         price = 75;     },         {         name = "orid dal";         percentage = 0;         price = 100;     },         {         name = "toor dal";         percentage = 0;         price = 150;     } ) sorted arr (         {         name = "channa white";         percentage = 0;         price = 100;     },         {         name = "gram dall";         percentage = 0;         price = 100;     },         {         name = "orid dal";         percentage = 0;         price = 100;     },         {         name = "ground nut";         percentage = 0;         price = 140;     },         {         name = "green moong dal";         percentage = 0;         price = 150;     },         {         name = "toor dal";         percentage = 0;         price = 150;     },         {         name = "black gram";         percentage = 0;         price = 56;     },         {         name = "moong dal";         percentage = 0;         price = 75;     },         {         name = "black eyed peas";         percentage = 0;         price = 80;     },         {         name = "double beans";         percentage = 0;         price = 95;     } )   here sorted array sorting in other order want sort in ascending order price.
it's unclear test data looks - following snippet works expected
nsarray *pricearray = [nsarray arraywithobjects:@(74),@(100),@(100),@(130), nil];     nsarray *namearray = [nsarray arraywithobjects:@"yva",@"hallo", @"adam", @"xavier", nil];  nsmutablearray *resultarray = [nsmutablearray new]; for(int i=0;i<[pricearray count];i++) {     nsmutabledictionary *celldict=[[nsmutabledictionary alloc]init];     [celldict setobject:namearray[i] forkey:@"name"];     [celldict setobject:pricearray[i] forkey:@"percentage"];     [celldict setobject:pricearray[i] forkey:@"price"];     [resultarray addobject:celldict]; } // sort name //nssortdescriptor *sort =[[nssortdescriptor alloc] initwithkey:@"price" ascending:yes];  // sort name nssortdescriptor *sort =[[nssortdescriptor alloc] initwithkey:@"name" ascending:yes selector:@selector(localizedcaseinsensitivecompare:)];  nsarray *descriptors = [nsarray arraywithobjects:sort, nil]; nsarray *sortedarray=[resultarray sortedarrayusingdescriptors:descriptors];  nslog(@"result %@ sorted arr %@",resultarray, sortedarray);   result:
2015-07-11 12:54:54.358 ret[10480:162783] result (         {         name = yva;         percentage = 74;         price = 74;     },         {         name = hallo;         percentage = 100;         price = 100;     },         {         name = adam;         percentage = 100;         price = 100;     },         {         name = xavier;         percentage = 130;         price = 130;     } ) sorted arr (         {         name = adam;         percentage = 100;         price = 100;     },         {         name = hallo;         percentage = 100;         price = 100;     },         {         name = xavier;         percentage = 130;         price = 130;     },         {         name = yva;         percentage = 74;         price = 74;     } )      
Comments
Post a Comment