Я хочу знать о разнице между NSLog
и Printf
оператором в Objective-C (для прикладных целей ...!)
Почему все разработчики используют NSLog
вместо Printf
?
Оба выглядят одинаково, но в чем разница во внутренней работе?
В какой момент их можно отличить?
NSLog похож на printf, но он делает немного больше:
@
для объектов, который отображает строку, предоставленную методом объекта description
. (description
является частью NSObject, поэтому все объекты могут переопределить его, чтобы вернуть строку, описывающую объект). С точки зрения разработчика, самое большое отличие состоит в том, что NSLog поддерживает типы объектов Objective-C через формат% @. NSLog также пишет в stderr, в то время как printf пишет в stdout.
Я вижу два основных различия между NSLog
и printf
:
NSLog
поддерживает NSString
объекты через расширение %@
;
Более того, NSLog
автоматически добавляет время и данные процесса (например, 2012-01-25 17: 52: 10.479 процесс [906: 707])