2015-03-05 2 views
0

можно ли избавиться от метки времени в NSLog()? Я хочу сохранить функциональность NSLog, но имеет более простые результаты. println() нет возможности из-за поведения с нитямиSwift: Избавьтесь от timestamp NSLog()

+0

Не ответьте на ваш вопрос, но почему вы хотите сохранить NSLog? Если вы нажмете свое приложение в хранилище с помощью NSLogs, вы получите сообщение ERROR, и если вы хотите его сохранить, вы используете его для себя и можете его игнорировать. – Miknash

+0

Я просто хочу создать свои журналы, как мне это нужно. Временная метка в основном бесполезна – Michael

ответ

0

развернуть свой собственный журнал на основе println, который использует НОД, чтобы убедиться, что он запускается на выполнение в основном потоке, например,

func log(string: String) 
{ 
    dispatch_async(dispatch_get_main_queue()) { println(string) } 
} 

Вы также можете отключить его для выпуска с помощью флага компилятора, например. см. Disabling NSLog For Production In Swift Project.

+0

I NSLog просто на главной теме ?! Разве это не синхронизация? – Michael

+0

AFAIK 'NSLog' только гарантирует, что вывод написан поточно-безопасным для' stderr' (что является еще одним отличием от 'println'). Или что вы подразумеваете под синхронизацией? Если он заблокирует вызывающего абонента до его завершения, используйте 'dispatch_sync'. –

Смежные вопросы