4

私は助けが必要です。なぜこれが機能しないのですか?

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);

しかし、これはします:

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

3 に答える 3

14
  • %@:オブジェクトの文字列形式(を含むNSString)を出力します。
  • %f:浮動小数点数を出力します(float
  • %d:整数を出力する(int
  • %x:数値の16進形式を出力します

オリジナルNSString:stringWithFormat:には2つの問題がありました。

  1. @%%@NSStringを出力する必要があります。
  2. %fの代わりに%dintを出力するために使用します。
于 2009-06-29T12:12:52.903 に答える
2

フォーマット文字列が正しくありません。processIdはfloatではなくintです。

この種のエラーを取り除くには、-Wformatを使用します。

于 2009-06-29T09:06:12.360 に答える
0

@フォーマットにエラーが含まれています。とをに交換し%ました[NSString stringWithFormat:]。形式がではないため、ログでは機能しますが、文字列の作成では機能し%@ません@%

于 2009-06-29T09:58:41.803 に答える