Search code examples
iphoneobjective-cstringformatted

iPhone: Problems with Formatted String (Objective C)


I need help. How come this does not work:

NSProcessInfo *process = [NSProcessInfo processInfo];
NSString *processName = [process processName];
int processId = [process processIdentifier];
NSString *processString = [NSString stringWithFormat:@"Process Name: @% Process ID: %f", processName, processId];
NSLog(processString);

But this does:

NSLog(@"Process Name: %@ Process ID: %d", [[NSProcessInfo processInfo] processName], [[NSProcessInfo processInfo] processIdentifier]);

Solution

    • %@: Output the string form of an object (including NSString).
    • %f: Output a floating point number (float)
    • %d: Output an integral number (int)
    • %x: Output hexadecimal form of a number

    Your original NSString:stringWithFormat: had two issues:

    1. @% should be %@ to output an NSString.
    2. You use %f instead of %d to output an int.