Oct 22,  2014

今天使用 Xcode 编写一个 objective-c 小程序的时候遇到一个小问题。 程序根据整数 n 将一个字符 “■” 重复 n 次,形成一个新的字符串 “■■■…■”。 很显然要使用 NSString 类的 stringByPaddingToLength:withString:startingAtIndex: 方法。 简化后的代码如下:

1
2
3
4
5
int n = 3;
NSString *symbol = [@"" stringByPaddingToLength:n
                                     withString:@"■"
                                startingAtIndex:0];
NSLog(@"%@", symbol);

本来预期是打印出■■■3个方块,结果系统始终打印出■■,只有2个方块。由于实际程序中涉及很多指针和变量的传递,第一反映是指针变量调用出现了问题,于是仔仔细细的从头到尾查了十几二十分钟涉及的指针和变量,都没有问题。之后尝试将 n 改成4,依然只输出了2︎个方块。突然反应过来,难道是字符■的长度不是1?

1
NSLog(@"length of %@ is %ld", @"■", @"■".length);

输出结果:length of ■ is 2

果然是这个原因。该字符是通过 Xcode 的 Special Character 工具找到的,后来在工具中找到了另外一个字长为1的方块替换,问题解决。记录一下,以便将来遇到特殊字符时能唤起敏感。

Oct 14,  2014

最近自学了一下 JavaScript 和 Phaser 游戏框架。Phaser 是一个开源的 HTML5 游戏框架,支持 JavaScript 和 TypeScript 两种开发语言,对桌面端和移动端都有很好的支持。

作为练习,学着利用 Phaser 制作了一个 FlappyBird 的 HTML5 山寨版,在电脑或是手机浏览器上都可以试玩。

[试玩地址]

[GitHub Repo]

由于我之前没有实际的 js 实践经验,只属于能看懂不会写的地步。因此这次也是在一边补习 js 一边学习 Phaser 的情况下来做的,也算是鼓捣出来了。

总体来说,Phaser 是一款非常简单好用的 js 游戏框架,学习曲线应该不算太陡。有兴趣的朋友可以去 Phaser 官网了解看看。

Oct 13,  2014

Objective-C 中如果想对类进行自定义和功能扩展,有2种常用技术:

  • category 类别
  • class extention 类扩展

两者有相似之处,也有区别。

1. category 类别

Category 可以给任何类(包括不是由你自己实现的类,比如框架类)增加方法或函数。该类和子类的所有实例都可以使用它们。在运行时,这些方法和函数与类原生的方法和函数没有任何差别。

点击继续阅读 | Read on →
Oct 11,  2014

写在前面

这是我的原创翻译的第一篇。

近期在阅读苹果官方文档的时候,突然萌生了想要翻译它的想法。一来是觉得可以加强阅读质量、加深印象,二来也可以练习一下英语理解能力,第三也是觉得可以为那些不愿意阅读英文文档的朋友尽一点微薄之力。反正现在没有工作,也是有些时间的(笑)。所以没有经过太多考虑,就开始做了起来。

对于翻译的原则,我是以严格尊重原著的表达方式为主,再根据中文的语言习惯和方便理解为目的进行微量的语法调整。出于对科学的谨慎和尊重(其实也是对自己的英语能力的担忧哈哈,毕竟只是六级水准),对于语法结构比较复杂的长句,我都会反复斟酌和理解,力求没有偏译。对于一些特定的专有名词,我也尽可能查阅相关资料寻求中文环境中最普遍的对应词汇。

希望我的这点工作能对一些人产生帮助。 如果对某些翻译存在异议,或者您也想加入我一起进行苹果文档的翻译工作,随时欢迎留言 :D

点击继续阅读 | Read on →
Oct 10,  2014

哈哈,俗套标题开场~

我是 Canvas Hsu,网络昵称是 GoGoCav - Go Go Canvas 的意思。现实生活中朋友都叫我小伍。

我于2008年毕业于华中科技大学电子与信息工程系,一直从事金融领域信息化建设方面的工作,先后就职于恒生集团、嘉实基金、广发基金。

2014年5月,我离开了投身6年多的基金圈,寻求职业生涯或是人生的转变。目前我是一名自由职业者,经营着一间零食店,同时将更多的时间投入到各种感兴趣的事情中,例如 iOS 应用开发/UX 设计/读书等,还想学学吉他。

也是因此,我终于有了时间写写博客,记录和分享一些我的学习、生活经历。

感谢你发现这里,希望这不是我们的最后一次相遇。