0

Pour mon code, j'interroge la recherche d'un firstName et lastName, puis je place ces deux valeurs dans des chaînes, puis je combine les chaînes et j'ajoute un espace dans le milieu. J'ajoute ensuite cette nouvelle chaîne à un NSMutableArray. Cependant, seules les premières instances sont ajoutées au tableau. Tous les autres tableaux comme indiqué dans le code obtiennent le nombre correct de valeurs de données. Voici mon code.Parse IOS stringWithFormat n'ajoute qu'un ensemble de données à NSMutableArray au lieu de deux ensembles

for (PFObject *object in objects) { 
       NSLog(@"%@", objects[i]); 
       NSString *phonenumber = object[@"phoneNumber"]; 
       NSString *firstname = object[@"firstName"]; 
       NSString *lastname = object [@"lastName"]; 
       NSString *email = object [@"email"]; 
       NSString *combinedname = [NSString stringWithFormat:@"%@ %@", firstname, lastname]; 
       NSLog(@"%@",combinedname); 
       NSLog(@"%@", phonenumber); 
       [phoneNUMBERS addObject:phonenumber]; 
       [firstNAMES addObject:firstname]; 
       [lastNAMES addObject:lastname]; 
       [EMAILS addObject:email]; 
       [combinedNAMES addObject:combinedname]; 
        NSLog(@"y0"); 
       NSLog(@"%@",combinedNAMES); 
      } 

Y at-il des raisons pour lesquelles combinedNAMES n'obtient la première série de noms et prénoms et non la seconde? Par exemple, les deux premiers noms stockés en analyse sont Jack et John, et leurs noms de famille sont Apple et Gardner. Le tableau stocke uniquement le nom Jack Apple et ne stocke pas John Gardner. Cependant, le tableau contenant les prénoms contient à la fois Jack et John

-(IBAction)displayfriendinfo:(id)sender{ 
    phoneNUMBERS = [NSMutableArray new]; 
    firstNAMES =[NSMutableArray new]; 
    lastNAMES = [NSMutableArray new]; 
    EMAILS = [NSMutableArray new]; 
    combinedNAMES = [[NSMutableArray alloc] init]; 
// Initialize table data 
    PFQuery *query = [PFQuery queryWithClassName:@"friendsAssociation"]; 
//quesrys the class Friend asssociation to find when instances of "user" equal the 
//logged in user's username 
    [query whereKey:@"user" equalTo:usernamecontrol]; 
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
     if (!error) { 
      // The find succeeded. 
      NSLog(@"Successfully retrieved %d users.", objects.count); 
      // Do something with the found objects 
      ContactTableViewController *contacts = [[ContactTableViewController alloc]initWithNibName:Nil bundle:Nil]; 
      contacts.user = usernamecontrol; 
      contacts.COMBINEDNAMES = [NSMutableArray new]; 
      contacts.FIRSTNAMES = [NSMutableArray new]; 
      contacts.PHONENUMBERS = [NSMutableArray new]; 
     contacts.COMBINEDNAMES = combinedNAMES; 
     contacts.PHONENUMBERS = phoneNUMBERS; 
     contacts.FIRSTNAMES = firstNAMES; 

     [self presentViewController:contacts animated:YES completion:Nil]; 


     if (objects.count == 0) { 
      //uialert letting the user know that no phone number matches the query 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No User" 
                  message:@"No user matches this username" 
                  delegate:self 
                cancelButtonTitle:@"OK" 
                otherButtonTitles:nil]; 
      [alert show]; 








     } 
     //if there is only one number matching the query 

     if (objects.count >=1) { 


      int i=0; 

      for (PFObject *object in objects) { 

       NSLog(@"%@", objects[i]); 


       NSString *phonenumber = object[@"phoneNumber"]; 
       NSString *firstname = object[@"firstName"]; 
       NSString *lastname = object [@"lastName"]; 
       NSString *email = object [@"email"]; 

       NSString *combinedname = [NSString stringWithFormat:@"%@ %@", firstname, lastname]; 
       NSLog(@"%@",combinedname); 




       NSLog(@"%@", phonenumber); 


       [phoneNUMBERS addObject:phonenumber]; 
       [firstNAMES addObject:firstname]; 
       [lastNAMES addObject:lastname]; 
       [EMAILS addObject:email]; 
       [combinedNAMES addObject:combinedname]; 
        NSLog(@"y0"); 
       NSLog(@"%@",combinedNAMES); 
      } 





      NSLog(@"y0"); 
      NSLog(@"%@", phoneNUMBERS); 







      //if there is more than one phonenumber matching the query as 
      //the user to input the friends username 
      //instead 


     } else { 
      // Log details of the failure 
      NSLog(@"Error: %@ %@", error, [error userInfo]); 
     } 
    }}]; 

} Voici toute la méthode que je me sers si cela aide à repérer le problème

+0

Je ne comprends pas « seulement obtient la première série de noms et prénoms et non le second » signifie –

+0

Ainsi, par exemple les deux stockés dans Parse prénoms sont Jack et John, et leurs noms de famille sont Apple et Gardner. Le tableau stocke uniquement le nom Jack Apple et ne stocke pas John Gardner. Cependant, le tableau contenant les prénoms contient à la fois Jack et John – David

+0

Est-ce que le NSLog imprime tout le nom combiné? –

Répondre

0

Assurez-vous que le tableau combinedNAMES est initialisé en dehors de la for boucle. -à-dire,

combinedNAMES = [[NSMutableArray alloc] init]; 
for (PFObject *object in objects) { 
      NSLog(@"%@", objects[i]); 
      NSString *phonenumber = object[@"phoneNumber"]; 
      NSString *firstname = object[@"firstName"]; 
      NSString *lastname = object [@"lastName"]; 
      NSString *email = object [@"email"]; 
      NSString *combinedname = [NSString stringWithFormat:@"%@ %@", firstname, lastname]; 
      NSLog(@"%@",combinedname); 
      NSLog(@"%@", phonenumber); 
      [phoneNUMBERS addObject:phonenumber]; 
      [firstNAMES addObject:firstname]; 
      [lastNAMES addObject:lastname]; 
      [EMAILS addObject:email]; 
      [combinedNAMES addObject:combinedname]; 
       NSLog(@"y0"); 
      NSLog(@"%@",combinedNAMES); 
} 
+0

Je l'ai initialisé avec combinedNames = [NSMutableArray nouveau]; et il stocke un ensemble de données mais pas l'autre donc je ne pense pas que l'initialisation est le problème – David

+0

où avez-vous initialisé, je pense que vous avez fait cela à l'intérieur de la boucle for !! – Saif

+0

J'ai mis à jour la question pour montrer l'ensemble de la méthode/code – David