Есть ли обзор всех кодов, которые можно использовать внутри NSLog ()? - PullRequest
1 голос
/ 20 июля 2009

т.е. % @ для строк,% f для двойников ... Я не знаю слова для этих заполнителей, но было бы здорово иметь список для печати булевых и других значений.

Ответы [ 4 ]

3 голосов
/ 20 июля 2009

Поскольку NSLog принимает NSString в качестве аргумента, он использует спецификаторы формата NSString. Это практически идентично общим printf спецификаторам. Кроме того, спецификатор %@ не ограничен NSString объектами, но предназначен для любых объектов Objective-C. Базовый класс NSObject предоставляет общее описание объекта, состоящего из его класса и его адреса, но многие объекты будут предоставлять информацию, специфичную для их типа, такую ​​как классы коллекций (NSArray, NSDictionary), которые будут предоставлять красиво форматированный сброс их содержимого. Вы можете предоставить это для своих собственных объектов, создавая переопределение -description (дополнительную информацию см. В документации, включая возможность локализации).

См. Также: Спецификаторы формата NSString

3 голосов
/ 20 июля 2009

Это обычная строка формата C с расширением% @ (которая печатает любой NSObject, запрашивая его метод -description, а не только NSStrings).

Обзор можно посмотреть в руководстве printf

2 голосов
/ 20 июля 2009

Кроме того, есть очень хороший обзор, а также некоторые советы и рекомендации в самой последней публикации "Пятничные вопросы и ответы" в блоге Майка Эша в NSBlog:

http://www.mikeash.com/?page=pyblog/friday-qa-2009-07-17-format-strings-tips-and-tricks.html

1 голос
/ 20 июля 2009

Вот небольшой снимок из «Программирование в Objective-C 2.0»

альтернативный текст http://img361.imageshack.us/img361/1438/picture1rze.png

...