Matrice de filtre par la première lettre de la chaîne de propriété

J'ai un NSArray avec des objets qui ont une name propriété.

Je voudrais filtrer le tableau par name

    NSString *alphabet = [agencyIndex objectAtIndex:indexPath.section];
    //---get all states beginning with the letter---
    NSPredicate *predicate =
    [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet];
    NSMutableArray *listSimpl = [[NSMutableArray alloc] init];
    for (int i=0; i<[[Database sharedDatabase].agents count]; i++) {
        Town *_town = [[Database sharedDatabase].agents objectAtIndex:i];
        [listSimpl addObject:_town];
    }
    NSArray *states = [listSimpl filteredArrayUsingPredicate:predicate];

Mais j'obtiens une erreur "ne Peut pas faire une sous-chaîne de l'opération avec quelque chose qui n'est pas une chaîne de caractères (lhs = <1, Flèche> rhs = A)"

Comment puis-je faire cela? Je voudrais filtrer le tableau pour la première lettre en name être "Un".

double possible de Comment trier un NSMutableArray avec des objets personnalisés-t-il?
Non, je voudrais filtrer par première lettre "A"
La pièce la plus importante de code pour ce poste est le prédicat itselft, mais a été laissé de côté. Montrez comment vous avez défini le prédicat?

OriginalL'auteur Nubaslon | 2013-09-10