Разве форматирование printf-стиля Какао не работает как ожидалось при использовании % спецификатор преобразования и ширина поля?

Мое понимание подобных printf строк формата - то, что можно снабдить префиксом любой спецификатор преобразования минимальную ширину поля. Это, кажется, не работает на Какао %@ спецификатор. Пример:

NSLog(@"'%5@'", @"foo");
NSLog(@"'%5s'", [@"foo" UTF8String]);

Вывод:

… 'foo'
… '  foo'

Действительно ли это - намеченное поведение?

6
задан Nikolai Ruhe 23 March 2010 в 15:33
поделиться

2 ответа

% @ только для объекта objective-c. Таким образом, ширина поля будет недействительной, если объект не является NSString.

Я не знал, что% 5 @ отформатирован так же, как% @.

1
ответ дан 17 December 2019 в 22:12
поделиться

Спецификатор формата %@ просто заменяется описанием объекта. Он не делает никаких усечений или вставки.

0
ответ дан 17 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: