Question: I have my [PFFacebookUtils logInWithPermissions] like this: 

```
NSArray *permissionsArray = @[@"user_about_me"];
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {

if (!user) {
 NSLog(@"Uh oh. The user cancelled the Facebook login.");
 } else if (user.isNew) {

 } else {
 NSLog(@"User logged in through Facebook!");
 } }];

```

The problem is that the method uploads an username similar to "St42o7PejDRh6scvMJylgOxGQ". What i want is to have the real username from Facebook uploaded, as well as the Facebook password and other relevant fields.

EDIT : With username i am specifically meaning First name, last name, and email if possible !

Answer: 
Don't confuse variable names with their content; macros and variable names have nothing to do with your assignment. `##` is used to join strings to be used in your code at *compile-time* (a typical usage is to build identifiers or in general code parametrically in macros), which is a relatively rare and very specialized task.

What you want to do, instead, is to generate *strings* at runtime based on a pattern (=> you'll have the same string variable that you'll fill with different stuff at each iteration); the right function for this is `snprintf`.
You can either:

* Use a MACRO as suggested (Compile-time). This involves some amount of knowledge to be present regarding the filesize (and numbers for sub-files) while implementing the code.
* use [`snprintf()`](http://linux.die.net/man/3/snprintf) in a loop to generate the filename.(Runtime). This can be used dynamically based on some algorithm for measuring the file size.

That said, best way : use `snprintf()`.