总的来说,Runloop,如其名,表示着一直在运行的循环。实际上,runloop和线程是紧密相连的,可以这样说runloop是为了线程而生,没有线程,它就没有存在的必要。每个线程,包括程序的主线程(main thread)都有与之对应的runloop对象。
简单来说:
当调用该对象上某个方法,而该对象上没有实现这个方法的时候, 可以通过“消息转发”进行解决。
objc
是动态语言,每个方法在运行时会被动态转为消息发送,即:objc_msgSend(receiver, selector)
。
如果说速度快是Hugo的第一大优点,那么安装简单应该就是Hugo的第二大优点。对于Mac用户,没有brew的话先安装brew,在命令行里敲:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后再敲一行安装Hugo:
$ brew new Hugo
你也可以直接下载对应系统的binary文件,解压就行了:下载地址
如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下:
find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l
列出每个文件的行数
Markdown 的目标是实现「易读易写」。可读性,无论如何,都是最重要的。
一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。
Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大灵感来源其实是纯文本电子邮件的格式。
总之, Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像*强调*。Markdown 的列表看起来,嗯,就是列表。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。