Tengo que ordenar un conjunto de objetos por una propiedad de los objetos que es una cadena.
¿Cómo puedo hacer esto?

3 Comentarios

  1. 9

    Sólo para la clasificación de conjunto de cadenas:

    sorted = [array sortedArrayUsingSelector:@selector(compare:)];

    Para la clasificación de objetos con la tecla «nombre»:

    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(compare:)];
    sorted = [array sortedArrayUsingDescriptors:@[sort]];

    También, en lugar de compare: puede utilizar:

    • caseInsensitiveCompare:

    • localizedCaseInsensitiveCompare:

  2. 4

    Aquí es lo terminé usando; funciona como un encanto:

    [categoryArray sortedArrayWithOptions:0
                   usingComparator:^NSComparisonResult(id obj1, id obj2)
    {
        id<SelectableCategory> cat1 = obj1;
        id<SelectableCategory> cat2 = obj2;
        return [cat1.name compare:cat2.name options:NSCaseInsensitiveSearch];
    }];

    SelectableCategory es sólo un @protocol SelectableCategory <NSObject> la definición de la categoría con todas sus propiedades y elementos.

Dejar respuesta

Please enter your comment!
Please enter your name here