iphone - problem with NSSortDescriptor .i am sorting the in ascending order(alphabetical order) -


i using nssortdescriptor sort custom objects key bandname, not getting output in alphabetical order. how fix that?

-(void)getdetails {     nslog(@"in getdetail method");     songrequestappdelegate *appdelegate = [[uiapplication sharedapplication] delegate];     nsmanagedobjectcontext *context1 = [appdelegate managedobjectcontext];     nsentitydescription *entitydesc = [nsentitydescription entityforname:@"addtofav" inmanagedobjectcontext:context1];     nsfetchrequest *request = [[nsfetchrequest alloc] init];     [request setentity:entitydesc];     nserror *error;     nsmutablearray *array_new=[[nsmutablearray alloc]init];     [array_new addobjectsfromarray:[context1 executefetchrequest:request error:&error]];     //[self.fetchedobjects addobjectsfromarray:[context1 executefetchrequest:request error:&error]];     [request release];  **nssortdescriptor *sortdescriptor;     sortdescriptor = [[[nssortdescriptor alloc] initwithkey:@"bandname" ascending:yes] autorelease];     nsmutablearray *sortdescriptors = [nsmutablearray arraywithobject:sortdescriptor];      //self.fetchedobjects=     [array_new sortedarrayusingdescriptors:sortdescriptors];     [self.fetchedobjects addobjectsfromarray:array_new];     [array_new release];**     (int i=0; i<[self.fetchedobjects count];i++)     {         nsmanagedobject          *addfav=[self.fetchedobjects objectatindex:i];         addfavobject *addfavobject=[[addfavobject alloc]init];         addfavobject.bandimagepath=[addfav valueforkey:@"bandimagepath"];         addfavobject.bandid=[addfav valueforkey:@"bandid"];         addfavobject.bandname=[addfav valueforkey:@"bandname"];         addfavobject.songid=[addfav valueforkey:@"songid"];         addfavobject.songlistid=[addfav valueforkey:@"songlistid"];         addfavobject.songname=[addfav valueforkey:@"songname"];         addfavobject.bandrealname=[addfav valueforkey:@"bandrealname"];         addfavobject.biography=[addfav valueforkey:@"biography"];         nslog(@"addto fav object biography %@",addfavobject.biography);     [self.addtofavobjectarray addobject:addfavobject];         [addfavobject release];     }      //nsarray *reverse = [[self.addtofavobjectarray reverseobjectenumerator] allobjects];     //    [self.addtofavobjectarray removeallobjects];     //  [self.addtofavobjectarray addobjectsfromarray:reverse];      nslog(@"self.addtofavobjectarray %@",self.addtofavobjectarray);      nslog(@"fetched objects count %d",[self.fetchedobjects count]);   } 

sortedarrayusingdescriptors: doesn't sort in place array sent to. returns new array objects sorted. should work with:

nsarray *sortedarray = [array_new sortedarrayusingdescriptors:sortdescriptors]; [self.fetchedobjects addobjectsfromarray:sortedarray]; 

you don't need sort separately though. can give sort descriptors fetch request , array returned executing sorted. i'd highly recommend doing way instead of how you're doing it. can replace before loop with:

    songrequestappdelegate *appdelegate = [[uiapplication sharedapplication] delegate];     nsmanagedobjectcontext *context1 = [appdelegate managedobjectcontext];     nsentitydescription *entitydesc = [nsentitydescription entityforname:@"addtofav" inmanagedobjectcontext:context1];      nssortdescriptor *sortdescriptor = [[[nssortdescriptor alloc] initwithkey:@"bandname" ascending:yes] autorelease];     nsmutablearray *sortdescriptors = [nsmutablearray arraywithobject:sortdescriptor];     [sortdescriptor release];      nsfetchrequest *request = [[nsfetchrequest alloc] init];     [request setentity:entitydesc];     [request setsortdescriptors:sortdescriptors];      nserror *error;     nsmutablearray *array_new = [context1 executefetchrequest:request error:&error];      if (!array_new)     {         nslog(@"error: %@", error);     }      [self.fetchedobjects addobjectsfromarray:array_new];     [request release]; 

i added in check array_new print error. might want add additional error handling there too.


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -