Simon Shi

放飞梦想,专注于Mobile开发

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: 订阅 订阅 :: 管理 ::

2011年11月30日

摘要: 无论在iPhone开发还是学习的过程中都会看到一些不是很理想的代码,不可否认自己也在不断“贡献”着这类代码。面对一些代码的“坏味道”,重构显然是个有效的解决途径。《iPhone开发重构》系列就想总结和补充iPhone开发中经历的一些重构,其间可能会引用一些开源以及实际项目的代码,本着对技术的探求,冒昧之处还请作者多多见谅。 写代码有时和说话一样,要体现层次感,可能是首先罗列要点,然后再逐点细化。但如果时而说要点,时而谈细节,就会造成听者理解上的障碍。如下的代码就会有这样的一个问题:重构前:- (UITableViewCell *)tableView:(UITableView *)tableV. 阅读全文
posted @ 2011-11-30 16:50 Simon Shi 阅读(143) 评论(0) 推荐(0) 编辑

摘要: 无论在iPhone开发还是学习的过程中都会看到一些不是很理想的代码,不可否认自己也在不断“贡献”着这类代码。面对一些代码的“坏味道”,重构显然是个有效的解决途径。《iPhone开发重构》系列就想总结和补充iPhone开发中经历的一些重构,其间可能会引用一些开源以及实际项目的代码,本着对技术的探求,冒昧之处还请作者多多见谅。 使用Objective-C的人应该都很熟悉通过alloc和init进行对象的“两阶段”创建。其实利用new的一次创建也是可以的,但由于“两阶段” 创建所具备的灵活性使得其成为了Objective-C创建对象的一种惯例。但真正使用的时候,开发人员有时更倾向与一些创建的辅助方. 阅读全文
posted @ 2011-11-30 16:48 Simon Shi 阅读(160) 评论(0) 推荐(0) 编辑

摘要: 无论在iPhone开发还是学习的过程中都会看到一些不是很理想的代码,不可否认自己也在不断“贡献”着这类代码。面对一些代码的“坏味道”,重构显然是个有效的解决途径。《iPhone开发重构》系列就想总结和补充iPhone开发中经历的一些重构,其间可能会引用一些开源以及实际项目的代码,本着对技术的探求,冒昧之处还请作者多多见谅。 在iPhone开发的过程中经常会遇到根据不同的Table行或者标识符推入不同的Controller的需要,一个最直接的实现就是硬编码,通过if…else if…else或者switch…case…实现,代码如下:重构前: - (void)pushViewControll.. 阅读全文
posted @ 2011-11-30 16:47 Simon Shi 阅读(157) 评论(0) 推荐(0) 编辑

摘要: 无论在iPhone开发还是学习的过程中都会看到一些不是很理想的代码,不可否认自己也在不断“贡献”着这类代码。面对一些代码的“坏味道”,重构显然是个有效的解决途径。《iPhone开发重构》系列就想总结和补充iPhone开发中经历的一些重构,其间可能会引用一些开源以及实际项目的代码,本着对技术的探求,冒昧之处还请作者多多见谅。 在一个应用中,不同地方所需要的内嵌网页浏览器,在iPhone可能就需要若干 个使用UIWebView的Controller(如下图)。这些Controller往往都有一些共通的行为,比如加载的时候会显示加载进度并在状态栏 显示网络状态图标,加载完毕后隐藏进度和网络状态显示. 阅读全文
posted @ 2011-11-30 16:46 Simon Shi 阅读(163) 评论(0) 推荐(0) 编辑

2011年11月25日

摘要: 苹果对开发者提交的应用的审核之严格是出了名的,了解苹果的审核标准对于开发者防止应用被拒有着十分重要的意义。几天前苹果官方公布了 App Store 审核指南,后经译言网翻译成了中文,现全文转发,供大家参考。 阅读全文
posted @ 2011-11-25 11:13 Simon Shi 阅读(224) 评论(0) 推荐(0) 编辑

2011年11月21日

摘要: This is the second part of a two part tutorial series on using ARC in iOS 5. 阅读全文
posted @ 2011-11-21 14:10 Simon Shi 阅读(407) 评论(0) 推荐(0) 编辑

摘要: The most disruptive change in iOS 5 is the addition of Automatic Reference Counting, or ARC for short. ARC is a feature of the new LLVM 3.0 compiler and it completely does away with the manual memory management that all iOS developers love to hate. 阅读全文
posted @ 2011-11-21 14:02 Simon Shi 阅读(379) 评论(0) 推荐(0) 编辑

摘要: 有用的ios开发人员博客 阅读全文
posted @ 2011-11-21 11:23 Simon Shi 阅读(140) 评论(0) 推荐(0) 编辑

2011年11月18日

摘要: Memory management in the iPhone is a hot topic. And since tonight I’m talking about it on tonight’s monthly meetup of the French-speaking Swiss iPhone Developers group, I might as well share some tips here from my own experience. 阅读全文
posted @ 2011-11-18 11:41 Simon Shi 阅读(221) 评论(0) 推荐(0) 编辑

摘要: [aView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)] 阅读全文
posted @ 2011-11-18 10:57 Simon Shi 阅读(134) 评论(0) 推荐(0) 编辑

2011年8月31日

摘要: 一些官方提供的Frank-Cucumber代码,可以参考去写我们自己的自动化测试代码 阅读全文
posted @ 2011-08-31 14:52 Simon Shi 阅读(535) 评论(1) 推荐(0) 编辑

摘要: 在写自动化测试代码时,很多时候往往不知道具体有哪些方法可以调用,以下为Frank-Cucumber的各种实例方法及其实现 阅读全文
posted @ 2011-08-31 14:47 Simon Shi 阅读(391) 评论(0) 推荐(0) 编辑

摘要: This page is intended to act as a place for useful Frank step definitions which aren't quite standard enough to add to the core frank steps. Please feel free to contribute your own useful codez. 阅读全文
posted @ 2011-08-31 14:25 Simon Shi 阅读(362) 评论(0) 推荐(0) 编辑

摘要: Here are some detailed steps on how to create your first Frankified app. Screencast coming shortly. Please don't be intimidated by the length of this tutorial, it is also to help complete Xcode beginners 阅读全文
posted @ 2011-08-31 14:23 Simon Shi 阅读(505) 评论(0) 推荐(0) 编辑

摘要: 安装部署 在敏捷开发中,经常会听到TDD,BDD这些词语,对于如何进行测试驱动开发,不同的敏捷团队有不同的执行方式,针对于目前在iOS下的测试方案,我们搭建了iOS的自动化测试平台。需要的安装文件(以下文件放到同一个目录下面,我的命名是setup_cucumber): 1.Frank 源代码 (可以从https://github.com/moredip/Frank下载,该项目用于为本地iOS应用做自动化行为测试) 2.必要的.gem档案 (如果有更新版本的.gem档,可以进行替换) builder-3.0.0.gem cucumber-0.10.2.gem diff-l... 阅读全文
posted @ 2011-08-31 11:03 Simon Shi 阅读(4247) 评论(3) 推荐(0) 编辑