Разве форматирование в стиле printf в Cocoa не работает должным образом при использовании спецификатора преобразования% @ и ширины поля? - PullRequest
6 голосов
/ 23 марта 2010

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

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

Выход:

… 'foo'
… '  foo'

Это предполагаемое поведение?

Ответы [ 2 ]

1 голос
/ 23 марта 2010

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

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

0 голосов
/ 01 июня 2010

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

...