定制化已经存在的类(翻译)

对象应该有明确定义的任务,比如说为特定信息建模,显示可视化信息或者控制信息的流向。就像你所见到的那样,一个类接口定义了其他类能够与之交互来完成那些任务的方法。

有些时候,你可能会发现你想要通过增加一些只在某些情况下有用的行为来扩展一个已经存在的类。比如说,你可能会发现你的程序经常需要在一个可视化接口中显示一个字符串。如果能够给予类NSString本身在屏幕上画它的字符的能力,那就远比每次你想要显示一个字符串的时候都创建一些画字符串的对象,有意义得多。 (更多…)

扯一些东西

上周去面了一家创业公司。技术面试的时候面试官也是随意问的,想到什么就问什么,没有太多准备好的问题来考我。但是有几个问我的问题我没有回答上来,是关于我之前做过的项目的,因为时间长了,再加上不是我做的,然后就记不得了。感觉自己面试之前做的准备还是不够。不过谈的还是蛮开心的。我能感觉到那家公司最看中我的就是我的潜能,第二位就是我现在已经能够独立开发iOS的app了。 (更多…)

并发和程序设计(翻译)

并发和程序设计

计算的早些日子中,每单位时间内一台电脑可以执行的工作的最大值是被CPU的时钟速度决定的。但是随着技术的发展和处理器设计的更加紧凑,发热和其它物理限制条件开始限制处理器的时钟速度的最大值。然后,芯片制造商开始寻找其它的方法来增加他们的芯片的总体性能。他们看中的方法就是增加每个芯片上的处理器核的数目。通过增加核的数目,单个芯片可以在每秒钟之内执行更多的命令而不需要增加CPU速度或者改变芯片大小或者热量特性。唯一的问题就是如何利用额外的核。 (更多…)

并发编程指南(翻译)

简介

并发说的是多个事情同时发生。随着多核CPU的增多和每个处理器上的核的增多,软件开发者需要新的方法来充分利用这些硬件。虽然像OS X和iOS这样的操作系统有能力同时运行多个程序,但是这些程序中的大多数是后台运行的,而且执行的是需要很少连续的CPU周期的任务。前台运行的程序才是得到用户关注和让电脑忙个不停的那个程序。如果一个应用程序需要做很多事情,但是只需要所有可用的核中的一部分,那剩下的那些核就浪费了。 (更多…)

如何使用Bitbucket

如果你需要在不同的电脑上(且非局域网),给一个非open source的项目写代码,你会选择哪个代码托管网站?我选择Bitbucket。原因简单来说就是:当时我知道的就三大家Google Code,GitHub和Bitbucket。google老是抽风,google code不知道,以前看过,不想用。GitHub创建私有项目要掏钱,好几刀一个月,我不想付钱。而Bitbucket可以免费的创建私有项目,支持Git,甚至可以5个人同时工作在同一个项目上,对目前的我来说,够了。 (更多…)

让app的test飞一会儿

如果你需要远程的和客户合作,你写代码,客户测试,你们会怎么合作?我选择testflightapp。简单来说就是你写完代码之后,出一个build,上传到testflightapp,并选择发邮件通知你的客户。你的客户在设备上打开邮件中的链接,下载app,开始测试。非常简单! (更多…)