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