В нашей текущей реализации мы хотим изменить наши строковые аргументы (Push-loc-args) и добавить новые аргументы. Но мы хотим, чтобы пользователь наших старых версий продолжал использовать аргумент # 3, а для нового пользователя мы хотим аргумент пользователя # 4. Таким образом, в нашей новой реализации мы следующий код:
NSString *format = @"%[email protected], %[email protected] ,%[email protected]";
NSArray *arg = @[@"Argument 1", @"Argument 2",@"Argument 3",@"Argument 4"];
NSString *ouptput = [NSString stringWithFormat:format, arg[0], arg[1], arg[2], arg[3]];
Выход: Аргумент 2, аргумент 1, аргумент 3
Мы ожидаем, что это будет
Довод 2, Аргумент 1, Аргумент 4
Как мы можем достичь Argument 4
на месте. Любая другая альтернатива stringWithFormat:
Примечания: Apple блокировка экрана толчок уведомление является правильной (Argument 2, Argument 1 ,Argument 4
), но stringWithFormat:
не обрабатывает его таким образом
"старые версии"? которого? Если это приложение, то как старые версии даже видят изменения? – trojanfoe
Фактически аргументы отправляются через push-уведомления, поэтому, если мы изменим аргументы, приложения «Old Version» получат обновленный список аргументов. В приложении используется только формат. –
См. Http://stackoverflow.com/questions/2944704/advanced-localization-with-omission-of-arguments-in-xcode: * "Когда используются специфицированные аргументы аргумента, указание N-го аргумента ** требует **, чтобы все ведущие аргументы от первого до (N-1) -го, указаны в строке формата. "* - Если вы опустите третий аргумент в строке формата, поведение не определено. –