NSlog的前世今生

OC中NSlog探究

NS

NS 是保留的NeXTSTEP 80年代末的Unix, 现在MacOS沿用当时的库(legacy code),所以对应的函数名也保留以NS开头。

log

log不是缩写,就是 log。
log 本意原木(语源可能是古诺尔斯语 lág),后来引申为船只航行用来测速的 chip log 测程板,长这样:
log
在航行的时候把 chip log 抛下,chip log 的阻力很大,便会悬浮在水中,这样通过测量一段时间内绳子伸出的长度就可以测量航速(航速单位节 knot 也是这么来的)。而利用航速测出的航行日志则会写在 logbook 上。
后来,航海中的 log 就被扩展到了更多的领域,表示记录和日志了。
至于 logarithm,则是来自希腊语 λόγος(比例)和 ἀριθμός(数)。

如图
航海日志

  1. 熟悉 Unix 以及衍生系统的人都明白,log 是用来记录所有类型 “输出” 的文本文件(也有不是文本的 log,比如 pf 的默认输出就不是纯文本)。
  2. 谈到 “输出” 的时候,我们一般会想到四种类型的输出:标准输出(stdout),错误输出(stderr),内核标准/错误输出(在控制台会以高亮显示)。
  3. log 和 “输出” 的明显区别就是,前者带时间戳(基本上是 log 带会带),而后者未必带,或者说一般情况下都不带。
    4。 “输出” 可以转化为 log(可以自己处理,也可以通过系统自动处理)

所以从以上四点来看 NSLog 却是可以叫 log,因为包含了时间戳;也可以是 “输出”,因为 NSLog 会把参数内容输出到 “标准输出”,运行相关 Objective C 程序后可以直接看见。

最后,NSLog 之所以用来做 “输出” 函数名,是大家的误解。其实 NSLog 就是实实在在用来 log 的,给你用来 “输出” 只是一个副作用;因为 Objective C 就是用来写 GUI 的语言,不是给你写程序在控制台下输出什么东西的(虽然也可以做到这一点)。

最近才开始往github上放东西 在公司写的又不能放= = 大家姑且看看吧

github地址: https://github.com/FuThD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值