In swift we can use both print() and NSLog() functions to print something on Xcode console.
But there are lot of differences in print() and NSLog() functions, such as:
1 TimeStamp: NSLog() will print timestamp along with the string we passed to it, but print() will not print timestamp.
e.g.
let array = [1, 2, 3, 4, 5]
print(array)
NSLog(array.description)
Output:
[1, 2, 3, 4, 5]
2017-05-31 13:14:38.582 ProjetName[2286:7473287] [1, 2, 3, 4, 5]
It’ll also print ProjectName along with timestamp.
2 Only String: NSLog() only takes String as an input, but print() can print any type of input passed to it.
e.g.
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 Performance: NSLog() function is very slow compare to print() function.
4 Synchronization: NSLog() handles simultaneous usage from multi-threading environment and prints output without overlapping it. But print() will not handle such cases and jumbles while prating output.
5 Device Console: NSLog() outputs on device console also, we can see this output by connecting our device to Xcode. print() will not print output to device’s console.