2017-01-17 2 views
0

Dans le cadre d'une boîte de saisie semi-automatique, je recherche des noms dans un tableau de contacts. Cependant, après que l'utilisateur ait choisi un nom dans la liste suggérée, je dois saisir l'identifiant du contact qui se trouve dans le tableau des objets contacts mais pas le tableau des noms qui apparaissent dans la boîte de suggestions. J'ai travaillé avec juste les noms car c'est ce que je veux afficher dans la boîte à suggestions, mais j'ai aussi un tableau de contacts. Comment puis-je convertir le code ci-dessous (probablement en utilisant des valeurs de clé) pour rechercher les dimensions nom d'un tableau d'objets au lieu d'un tableau de noms afin de garder une trace des identifiants des objets. Je suis un peu flou sur les tableaux et les valeurs clés.IOS/Objective-C: Rechercher un élément de chaîne avec un tableau d'objets

//the array being searched looks something like @[@"John", @"Dave", @"Sam", @"Xian", @"Ahmed", @"Johann"]; 

//I want to search the names in an array that looks something like: 

(
     { 
     first = "John";cid = 2;}, 
     { 
     first = "Dave";cid = 44;}, 
     { 
     first = "Xian";cid=99}) 
//this code works great to search names but I lose track ids. Thank you for any suggestions. 

-(void)searchArray: (NSMutableArray*) array forString: (NSString *) term { 
    [_contactsSuggested removeAllObjects];  
     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",term]; 
    NSArray *tempArray = [array filteredArrayUsingPredicate:predicate]; 
    _contactsSuggested = [NSMutableArray arrayWithArray:tempArray]; 
    [_autocompleteTableView reloadData]; 
} 
+0

vous pouvez créer un modèle de contact. – aircraft

Répondre

1

Créez un objet Contact. Donnez-lui une propriété name, une propriété id et toutes les autres propriétés dont vous avez besoin. Ensuite, écrivez le code qui recherche un tableau d'objets Contact plutôt qu'un tableau de noms. Vous pouvez ensuite créer un prédicat à l'aide de predicateWithBlock pour filtrer les éléments correspondant à votre propriété name.