C #에는 문자열 형식 지정자에 인수 인덱스를 지정할 수있는 구문이 있습니다. 예 :
string message = string.Format("Hello, {0}. You are {1} years old. How does it feel to be {1}?", name, age);
인수를 두 번 이상 사용할 수 있으며 제공된 인수가 사용되지 않도록 생략 할 수도 있습니다. 또 다른 질문 은 같은 형식의 C / C ++에 대해 %[index]$[format], 예를 들어 %1$i. 형식에서 인수 를 생략 할 때 잘 동작하기 때문에 NSString 이이 구문 을 완전히 존중 하도록 할 수 없었습니다 . 다음은 예상대로 작동하지 않습니다 (EXC_BAD_ACCESS는 매개 변수를 NSObject *로 역 참조하려고하기 때문에 ).age
int age = 23;
NSString * name = @"Joe";
NSString * message = [NSString stringWithFormat:@"Age: %2$i", name, age];
위치 인수는 형식에서 누락 된 인수가없는 경우에만 존중됩니다 (이상한 요구 사항 인 것 같습니다) :
NSString * message = [NSString stringWithFormat:@"Age: %2$i; Name: %1$@", name, age];
이러한 모든 호출은 OS X에서 제대로 작동합니다.
printf("Age: %2$i", [name UTF8String], age);
printf("Age: %2$i %1$s", [name UTF8String], age);
Objective-C / Cocoa에서 NSString을 사용하여 이것을 수행하는 방법이 있습니까? 현지화 목적으로 유용합니다.