code

Xcode 扩展

作者:Russ Bishop,原文链接,原文日期:2016-06-14译者:小袋子;校对:saitjr;定稿:CMBXcode 8 现在开始支持一套官方的扩展 API。第一个支持的扩展类型就是源码编辑器的扩展(虽然很可能不是最后一个)。另一方面, Xcode 8 采用了系统完整性保护功能(即 SIP,System Integrity Protection)。 这意味着想要将

rac初识

(这篇文章原来发布在 csdn ,现在 blog 迁移过来,并用 Markdown 重新排版以及修改)本文英文原文出自这篇文章 ,但我只是有选择性的进行了翻译。rac 强调原子操作以及组装。rac 基本上是建立在信号的基础上的,也就是 RACSignal ,所有的操作都能转成 RACSignal 来组装操作。这篇文章主要从信号的角度进行介绍。单个信号rac入门最经典的一个

project.pbproj 文件的学习

(这篇文章原来发布在 csdn ,现在 blog 迁移过来,并用 Markdown 重新排版以及修改)因为项目的需求,最近学习了一下 project.pbxproj ,对于这个文件的介绍,网上有不少资料,但感觉都不甚详细,这里对我在学习中,学到的一些东西,稍作记录,一方面方便新学的同学能有个了解,同时也让自己以后,有个参考。xcode 将我们对项目的配置信息,统一写到了 p

rac初识之冷热信号

(这篇文章原来发布在 csdn ,现在 blog 迁移过来,并用 Markdown 重新排版以及修改)racsignal 的信号有冷热之分,简单来说所谓冷信号可以理解为被动的,只有当有订阅者的情况下,才会发布消息,且每订阅一次,重复发一次消息。而热信号则不依赖与订阅者,当它需要发消息的时候,不论有没有订阅者,都会发送。冷信号如下:RACSignal *signal = [R

ios method swiling

背景最近在整理项目逻辑的时候,发现一个问题:就是打点统计,经常和代码业务逻辑混在了一起,耦合性很强,并且经常容易出错。于是就在思考怎样对这一块进行优化。其实,对这方面的讨论一直也比较多,比如继承基类,但是这样很容易使代码变得臃肿。另一个比较好的办法就是利用 method swizzling, hook 住需要打点的方法,将打点统计从业务逻辑中分离出来,而且额外工作量不大。最

Code Review 程序员的寄望与哀伤

一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug。事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测试中很难被发现。毕竟想要在测试环境完美的复制生产环境的所有情况也是不太可能的,导致出现了疏漏。对于这类情况,我们在想是否可以通过在线下做一些 Code Review(代码审查)假

OS X 下在代码中枚举所有进程的方法

Reference:如何枚举所有进程用NSTask执行外部命令并获取输出结果的方法在OS X开发中,有时候需要枚举所有的进程以查询某些你需要查询的进程,比如协作进程之类,或者是了解某些进程的状态。但是貌似并没有直接简单的获取这些信息的method,所以需要使用别的方法GetNextProcess这里使用的这套应该是来自于Core Foundation的方法,几个相关的函数如

一个html标签到底包含了多少信息(1)

先来看一段代码:var dom = document.querySelector('body');for(var i in dom){ console.log(i,dom[i])}可以看到很多,来整理一下,总共有三大类(我自己分的,没有科学依据)除了一些私有属性、方法(比如a的私有属性href等)和一些空的属性attributeseventsmethodsattrib

WWDC 观后感

作者:Erica Sadun,原文链接,原文日期:2016-06-13译者:小铁匠Linus;校对:numbbbbb;定稿:numbbbbb今年,苹果的 WWDC 演讲在更新其产品线的同时并没有太多的惊喜和创新。虽然观众都在热情地回应,但我并不确定科技新闻会为此喝彩。我很喜欢 iOS playgrounds,它为教育机构(如斯坦福)提供了一种比看教程更好的方式。我自己写的

IOS释放自注销模式设计

日常开发中,我们经常会注册一些通知、发起一些请求,当我们不需要时应及时注销通知,取消掉请求。否则,就有可能产生问题或者崩溃。比如我们会在控制器的viewDidLoad里面注册一些通知,然后在dealloc里面注销掉通知。或者当我们退出控制器时,将所有的当前发起的请求都Cancel掉。这在MRC开发下是非常常见的,因为请求返回时,回调代理时可能为野指针。这种手动注销的方式有些