Почему print() в Swift не регистрирует отметку времени как NSLog в объекте C
Из фона Objective C, когда я использую NSLog()
, он префикс текста с отметкой времени даты, но когда я использую print()
в Swift, он печатает только текст
Так что есть способ заставить его распечатать отметку времени, или я делаю что-то неправильно?
Ответы
Ответ 1
Потому что печать не NSLog. Это так просто.
NSLog - это инструмент регистрации, записывающий журнал, который появляется на консоли. Print() - это функция печати, записывающая стандартную версию, которая появляется на консоли в сеансах отладки.
Вы можете добавить NSDate() к вашему выводу, чтобы напечатать текущее время и дату.
Или, альтернативно, вы можете использовать NSLog(), который также доступен в Swift.
Ответ 2
Swift:
NSLog("this will print with dates")
Ответ 3
Вот предлагаемая функция, которую вы можете использовать вместо print()
func printLog(log: AnyObject?) {
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS "
print(formatter.stringFromDate(NSDate()), terminator: "")
if log == nil {
print("nil")
}
else {
print(log!)
}
}
Ответ 4
Сделайте свою собственную функцию класса для печати, например printWithDate(), и добавьте дату в выход. Затем вы можете использовать это везде, не добавляя дату каждый раз, когда хотите распечатать.