列印 vs NSLog

在 swift 中,我們可以使用 print()NSLog() 函式在 Xcode 控制檯上列印一些東西。

但是 print()NSLog() 函式有很多不同之處,例如:

1 TimeStamp: NSLog() 將列印時間戳以及我們傳遞給它的字串,但 print() 將不會列印時間戳。
例如

let array = [1, 2, 3, 4, 5]
print(array)
NSLog(array.description)

輸出:

[1,2,3,4,5]
2017-05-31 13:14:38.582 ProjetName [2286:7473287] [1,2,3,4,5]

它還會列印 ProjectName 以及時間戳。

2 Only String: NSLog() 僅將 String 作為輸入,但 print() 可以列印傳遞給它的任何型別的輸入。
例如

let array = [1, 2, 3, 4, 5]
print(array) //prints [1, 2, 3, 4, 5]
NSLog(array) //error: Cannot convert value of type [Int] to expected argument type 'String'

3 效能:與 print() 功能相比,NSLog() 功能非常

4 同步: NSLog() 處理來自多執行緒環境的同時使用並列印輸出而不重疊它。但是 print() 在處理輸出時不會處理這樣的情況和混亂。

5 裝置控制檯: NSLog() 也在裝置控制檯上輸出,我們可以通過將裝置連線到 Xcode 來檢視此輸出。print() 不會將輸出列印到裝置的控制檯。