Kiedy używam formatowania ciągów znaków, czy mogę uzyskać dostęp do jednego parametru wiele razy bez przekazywania go ponownie?"NSString stringWithFormat:" - Czy uzyskasz dostęp do tego samego parametru wiele razy?
Przykład:
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];
Czy istnieje sposób, aby uzyskać dostęp do pierwszego parametru ponownie bez pisania”, parameter1" znowu?
Należy zauważyć, że w ciągu formatu, należy odnieść się do wszystkich argumentów dostarczonych w liście argumentów. na przykład. Poniższy kod spowoduje błąd w czasie wykonywania, ponieważ pierwszy argument pozycyjny jest nieużywany w ciągu znaków formatowania: '[NSString stringWithFormat: @"% 2 $ @ ", @" bar ", @" foo "]' - zobacz http: //stackoverflow.com/questions/2946649/nsstring-stringwithformat-swzzmocnione-to -allow-missing-format-numbered-args – mrb
@mrb W prawo. Jest to efekt uboczny implementacji zmiennych argumentów ('...') w C (nie błąd). Jeśli nie powiesz funkcji formatowania, jaki typ ma argument (odwołując się do niego przynajmniej raz), nie ma sposobu, aby poprawnie zlokalizować po nim. – hamstergene
Próbuję go z predicateWithFormat, ale nie działa. W jaki sposób można użyć pozycji argumentu dla predykatu? – Add080bbA