Подтвердить что ты не робот

Почему print() в Swift не регистрирует отметку времени как NSLog в объекте C

Из фона Objective C, когда я использую NSLog(), он префикс текста с отметкой времени даты, но когда я использую print() в Swift, он печатает только текст

Так что есть способ заставить его распечатать отметку времени, или я делаю что-то неправильно?

4b9b3361

Ответ 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(), и добавьте дату в выход. Затем вы можете использовать это везде, не добавляя дату каждый раз, когда хотите распечатать.