打印 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() 不会将输出打印到设备的控制台。