ios - requisitos - Por qué imprimir() en Swift no registra la marca de tiempo como NSLog en el objetivo C
registro de nombres comerciales (5)
Aquí hay una función sugerida que puede usar en lugar de imprimir ()
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!)
}
}
Desde el fondo del Objective C cuando uso NSLog()
, el NSLog()
del texto con la marca de fecha y hora, pero cuando uso print()
en Swift solo imprime el texto
Entonces, ¿hay una manera de hacer que imprima la marca de tiempo también, o estoy haciendo algo mal?
Este simplemente genera una marca de tiempo simple, pero se puede modificar fácilmente para incluir texto adicional si lo desea.
Además, se basa en un DateFormatter
lazy
para evitar costosas inicializaciones.
import Foundation
class Timestamp {
lazy var dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS "
return formatter
}()
func printTimestamp() {
print(dateFormatter.string(from: Date()))
}
}
let timestamp = Timestamp()
timestamp.printTimestamp() // 2018-07-05 12:57:08.725
timestamp.printTimestamp() // 2018-07-05 12:57:08.727 (uses the same formatter)
Haga su propia función de clase para imprimir, por ejemplo, printWithDate () y anteponer la fecha a la salida. Luego puede usar esto en todas partes sin necesidad de agregar la fecha cada vez que quiera imprimir.
Porque la print
no es NSLog
. Es tan simple como eso.
NSLog
es una herramienta de registro en Foundation que escribe en el NSLog
registro del sistema de Apple que aparece en la consola.
print(…)
es una función de impresión en Swift Standard Library que escribe en out estándar, que aparece en la consola en sesiones de depuración.
Puede agregar Date()
a su parámetro de impresión para imprimir la fecha y hora actuales. (O la Date().description(with: Locale.current)
para obtenerlo en su zona horaria local.)
O simplemente puede usar NSLog
que también está disponible en Swift (si importa Foundation).
Rápido:
NSLog("this will print with dates")