iOS 中的行为讲解

    作为一个开发者,我们致力于编写简洁并且良好架构的代码。很多设计模式都可以实现这一点,其中最好的一种是组合模式。组合模式使编写出的代码更易于遵循功能单一原则并且可以使我们的类简化。 为了替代一个功能上服务于不同模块(就像 data sources 和 delegates )的繁冗的视图控制器,我们将这些模块划分到不同的类中。这个视图控制器就可可以仅仅负责这些类的配置和协调它们工作。毕竟,代码写的越少,调试和维护代码的工作量就越少。

滥用单例的影响

    单例是整个 Cocoa 中被广泛使用的核心设计模式之一。事实上,苹果开发者库把单例作为 “Cocoa 核心竞争力” 之一。作为一个iOS开发者,我们经常和单例打交道,比如 UIApplication 和 NSFileManager 等等。我们在开源项目、苹果示例代码和 StackOverflow 中见过了无数使用单例的例子。Xcode 甚至有一个默认的 “Dispatch Once” 代码片段,可以使我们非常简单地在代码中添加一个单例: + (instancetype)sharedInstance { static dispatch_once_t once; static id sharedInstance; dispatch_once(&once, ^{ sharedInstance = [[self alloc] init]; }); return sharedInstance; } 由于这些原因,单例在 iOS 开发中随处可见。问题是,它们很容易被滥用。

消息传递机制详解

    每个应用或多或少都由一些需要相互传递消息的对象结合起来以完成任务。在这篇文章里,我们将介绍所有可用的消息传递机制,并通过例子来介绍怎样在苹果的框架里使用。我们还会选择一些最佳范例来介绍什么时候该用什么机制。 虽然这一期的主题是关于 Foundation 框架的,但是我们会超出 Foundation 的消息传递机制 (KVO 和 通知) 来讲一讲 delegation,block 和 target-action 几种机制。当然,有些情况下该使用什么机制没有唯一的答案,所以应该按照自己的喜好去试试。另外大多数情况下该使用什么机制应该是很清楚的。

关于OC值对象的研究

    在这篇文章里,我们会看看如何用 Objective-C 写值对象 (value objects)。在编写中,我们会接触到 Objective-C 中的一些重要的接口和方法。所谓值对象,就是指那些能够被判等的,持有某些数值的对象 (对它们判等时我们看重值是否相等,而对是否是同一个对象并不是那么关心)。通常来说,值对象会被用作 model 对象。比如像下面的 Person 对象就是一个简单的例子: