Pregunta

I have NSSet of NSStrings. I want to return alphabetically sorted array of NSSet elements with method – sortedArrayUsingDescriptors:.

I have read NSSortDescriptor documentation and still have no clue how to create one for simple NSString objects.

What key should I specify? Is there a better approach than using NSSortDescriptor?

¿Fue útil?

Solución

I can't find it documented that passing nil for the key is safe and means to use the object itself. So, I'd be hesitant to use it. You can use @"self" instead.

Otros consejos

NSSet *sets = [NSSet setWithObjects:@"Peter", @"Brennon", @"Zach", @"Yan", @"Akila", nil];
NSSortDescriptor *desc = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
NSArray *sorted = [sets sortedArrayUsingDescriptors:@[desc]];

Logs out:

(
    Akila,
    Brennon,
    Peter,
    Yan,
    Zach
)

Just use nil as the key. E.g.

[set sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:nil ascending:YES selector:@selector(compare:)]]]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top