29

文字列フォーマットを使用している場合、1つのパラメーターに再度渡さずに複数回アクセスできますか?

例:

NSString *parameter1 = @"1";
NSString *parameter2 = @"2";

NSString *myString;
myString = [NSString stringWithFormat:@"I want to print parameter1 here: %@, parameter2 here: %@ and now access parameter1 again: %@ _without_ passing it again.",parameter1, parameter2, parameter1];

"、parameter1"を再度書き込まずに、最初のパラメーターに再度アクセスする方法はありますか?

4

2 に答える 2

63

はい、位置引数を使用します:

// prints: foo bar foo bar
NSLog(@"%@", [NSString stringWithFormat:@"%2$@ %1$@ %2$@ %1$@", @"bar", @"foo"]);

// NSLog supports it too
NSLog(@"%2$@ %1$@ %2$@ %1$@", @"bar", @"foo");
于 2012-07-12T14:39:32.363 に答える
4
NSString *parameter1 = @"1";
NSString *parameter2 = @"2";

NSString *myString;
myString = [NSString stringWithFormat:@"I want to print parameter1 here: %1$@, parameter2 here: %2$@ and now access parameter1 again: %1$@ _without_ passing it again.",parameter1, parameter2];

文字列書式指定子

于 2012-07-12T14:41:38.033 に答える