列印 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()
不會將輸出列印到裝置的控制檯。