Jump to content


Forumul s-a mutat!

Aceasta este arhiva forumului MacForum.ro din perioada 2010-2014.
Noul forum poate fi accesat aici.
Conturile vechi nu mai sunt valabile pe noul forum!

Photo

intrebare sortare array


  • Please log in to reply
3 replies to this topic

#1 boboc

boboc

    Veteran

  • Membri
  • PipPipPipPip
  • 668 posts
  • Locationvalcea

Posted 22 April 2010 - 14:35

am si eu o intrebare,cum pot sorta un NSArray ale carui elemente sunt cheile(NSString) dintr-un NSDictionary?
am incercat medota keysSortedByValueUsingSelector dar imi pune cheile in array nesortate.

array = [dictionary keysSortedByValueUsingSelector: @selector (compare:)];

Si as mai avea o problema dintr-o carte,tot un array dar NSMutableArray ale carui elemnte sunt fractii(obiecte).
Am incercat asa dar nu merge:

[array sortUsingSelector: @selector(compareFractions:)];

- NSCoparisonResult compareFractions: (id) f
{
	return [(numerator/denominator) compare: (f.numerator/f.denominator)];
}

Multumesc anticipat.

#2 raducul

raducul

    Membru nou

  • Membri
  • Pip
  • 3 posts

Posted 22 April 2010 - 17:13

NSSortDescriptor *__sd = [[[NSSortDescriptor alloc] initWithKey:@"name" ascending:TRUE] autorelease];
[__arr sortedArrayUsingDescriptors:[NSArray arrayWithObject:__sd]];

#3 boboc

boboc

    Veteran

  • Membri
  • PipPipPipPip
  • 668 posts
  • Locationvalcea

Posted 22 April 2010 - 17:29

multumesc pentru raspuns.
nu vreau sa folosesc alta clasa,ma intereseaza de ce nu functioneaza metodele keysSortedByValueUsingSelector: si sortUsingSelector:

#4 boboc

boboc

    Veteran

  • Membri
  • PipPipPipPip
  • 668 posts
  • Locationvalcea

Posted 22 April 2010 - 20:43

Am rezolvat ambele problema cu putina atentie :)
Metoda keysSortedByValueUsingSelector: returneaza un NSArray cu keys-urile iar metoda sortUsingSelector merge cu NSMutableArray si nu cu NSArray.
Trebuia sa folosesc metoda sortedArrayUsingSelector care are forma:

-(NSArray *) sortedArrayUsingSelector: (SEL) selector
array = [array sortedArrayUsing: @selector(compare:)];

Pentru celalalta problema,pentru a sorta un array cu fractii(obiecte) metoda care merge am facut-o asa:

[array sortUsingSelector: @selector(compareFractions:)];

-(NSComparisonResult) compareFractions: (Fraction *) f
{
    int first,second;
    first = numerator * f.denominator;
    second = f.numerator * denominator;
    if(first < second)
        return NSOrderedAscending;
    else if(first == second)
        return NSOrderedSame;
    else
        return NSOrderedDescending;
}

Edited by boboc, 22 April 2010 - 20:44.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users