bonjour,
suite à mon problème de \n, je continue ma recherche sur un titre de livre/auteur.
pour une chaine égale pas de soucis isEqualToString fait l'affaire.
Par contre si je ne recherche qu'un morceau de la chaine ?
j'ai essayé avec compare: puis localizedCaseInsensitiveCompare:
mais je n'arrive à rien.
pourquoi ma recherche n'aboutit pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 - (void)findBookWithString:(NSString *)whichString ofType:(NSString *)newType inArray:(NSMutableArray *)myList{ Book *book; //je regarde si c'est une recherche par auteur if ([newType isEqualToString:@"AUTEUR"]) { //je parcours mes livres for (NSString * key in myLibrary) { book=[myLibrary objectForKey:key]; //si le nom de l'auteur est exactement le même casse comprise je le retrouve ça marche if ([book.author isEqualToString:whichString]) { [myList addObject:book]; } //si je n'ai qu'une partie du nom et que je ne tiens pas compte de la casse je n'y arrive pas if ([book.author localizedCaseInsensitiveCompare:whichString]== NSOrderedSame){ [myList addObject:book]; } } }else { //pour une recherche sur le titre qui est aussi la clé de mon dictionnaire, qui serait aussi à revoir pour une recherche sur un mot du titre book=[myLibrary objectForKey:whichString]; if (book != nil) { [myList addObject:book]; } } }
merci de vos conseils.
Partager