2013年7月3日

Objective-C try/catch异常处理机制原理。

摘要: Objective-C使用@try @catch @finally来捕获并处理异常。处理异常需要用到NSException类,它是所有异常的基类。你可以直接使用NSException类来捕获异常,也可以继承一个新的类。 Objective-C是C语言的扩充,它的异常处理机制是通过C标准库提供两个特殊的函数setjmp()和longjmp()函数实现的。如果对C的异常处理机制和setjmp、longjmp函数不了解的,建议先阅读:C语言异常处理机制。先来看看下面的例子:#import int main (int argc, const char * argv[]){ @autorel... 阅读全文

posted @ 2013-07-03 12:28 Markhy 阅读(12778) 评论(1) 推荐(0) 编辑

2013年6月14日

Objective-C 设计模式-桥接模式 (Bridge)

摘要: Bridge模式定义 桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立的变化。桥接模式是比较复杂和难理解的模式之一,要想理解桥接模式,就要理解桥接模式中的“抽象”和“实现”的概念。如果一个抽象类或接口有多个具体实现(多个子类),而这些子类之间有内容概念上的重叠,那么我们就需要将抽象部分和实现部分各自独立出来。抽象部分是指,存在于多个实体中的共同的概念性联系;实现部分是指,抽象部分给出的具体实现,是指怎样去实现客户的需求。 下图是桥接模式结构图: 图中所示,桥接模式使用对象组合的方式将抽象部分与实现部分彻底的解耦,使得这两部分可以独立的变化。桥接模式涉及的角色有: ... 阅读全文

posted @ 2013-06-14 16:30 Markhy 阅读(521) 评论(0) 推荐(0) 编辑

2013年6月13日

Objective-C 设计模式-访问者模式 (Visitor)

摘要: 访问者模式定义 访问者模式 (Visitor) ,表示一个对象结构中的各元素的操作,它可以在不改变各元素的类的前提下,定义作用于各元素新的操作。组成角色Visitor访问者角色,它可以是一个抽象类,或协议。为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色,这样访问者就可以通过该元素角色的特定接口直接访问它。ConcreteVisitor具体访问者角色,实现Visitor声明的接口。Element元素角色,定义一个Accept接受访问的操作,它以一个访问者Visitor作为参数。ConcreteElement具体元素角色,实现元. 阅读全文

posted @ 2013-06-13 18:38 Markhy 阅读(540) 评论(0) 推荐(0) 编辑

2013年6月12日

Objective-C 设计模式-适配器模式 (Adapter)

摘要: 适配器模式定义 适配器模式(Adapter),将一个类的结构转换成用户希望的另一个接口,使得原本接口不兼容的类能在一起工作。换句话说,适配器模式就是链接两种不同种类的对象,使其很好的协同工作。适配器模式有两种实现方式:类适配器模式,只针对单一的具体Adaptee类,把Adpatee适配到Target。通过直接子类化Adpatee类进行适配,易于重载Adpatee行为。 2. 对象适配器,可以是适配多个Adaptee类,需要包含Adaptee的引用,以间接访问Adaptee并适配其行为。适配器模式使用场景已有的类的接口和需求匹配想定义一个可复用的类,该类可能有带不兼容接口的其他类协作。需要适.. 阅读全文

posted @ 2013-06-12 16:36 Markhy 阅读(628) 评论(0) 推荐(0) 编辑

Objective-C 设计模式-组合模式 (Composite)

摘要: 组合模式定义 把具有相同基类类型的对象组合到树形结构中,以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式使得树形结构中的每个节点都具有相同的抽象接口,整个结构可作为一个统一的抽象结构使用,而不暴露其内部表示。每个节点的任何操作,可以通过抽象基类中定义的相同接口来进行。何时使用组合模式想把对象抽象成树形结构,具有“部分-整体”的层次关系。想让客户端统一处理组合中的对象。在ios中使用组合模式 在Cocoa Touch框架中,UIView对象被组合成一个树形结构,UIView对象可以包含其他的UIView对象。这种组合方式便于统一用于事件处理和动作消息,例.. 阅读全文

posted @ 2013-06-12 13:14 Markhy 阅读(1184) 评论(0) 推荐(0) 编辑

2013年6月9日

Objective-C 设计模式-代理模式 (Proxy)

摘要: 代理模式定义 代理模式(Proxy),为其他对象提供一种代理,以控制对这个对象的访问。属于结构型模式,它为一个对象提供替代者或占位者,客户端通过代理对象访问目标对象,代理对象在客户端和目标对象之间起到中介的作用。有以下几种代理:远程代理(Remote proxy),为一个不同地址空间或网络上的对象提供本地代表。好处是代理对象将网络的细节封装起来,客户端不必关心网络的存在。虚拟代理(Virtual proxy),根据需要创建重型或开销很大的对象。如果需要创建一个资料消耗较大的对象,先创建一个开销较小的对象来占位表示,等真正需要时才创建实体对象。这里起到了延迟对象实例化,来减缓对系统资源的消耗的. 阅读全文

posted @ 2013-06-09 23:27 Markhy 阅读(1301) 评论(0) 推荐(0) 编辑

Objective-C 设计模式-装饰模式(Decorator)

摘要: 装饰模式定义 装饰模式(Decorator),动态地为一个对象添加额外的职责,是继承的替代方案,属于结构型模式。通过装饰模式扩展对象的功能比继承子类方式更灵活,使用继承子类的方式,是在编译时静态决定的,即编译时绑定,而且所有的子类都会继承相同的行为。然而,如果使用组合的方式扩展对象的行为,就可以在运行时动态地进行扩展,将来如果需要也可以动态的撤销,而不会影响原类的行为。何时使用装饰模式想在不影响其他对象的情况下,以动态、透明的方式为对象添加职责。想要扩展对象的行为,但类定义可能被隐藏,无法进行子类化,例如要扩展一个使用单例模式类的行为,就无法通过继承来实现。对类的职责是可选的。装饰模式在io. 阅读全文

posted @ 2013-06-09 00:18 Markhy 阅读(746) 评论(0) 推荐(0) 编辑

2013年6月6日

Objective-C 设计模式-备忘录模式(Memento)

摘要: 备忘录模式定义备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。在不破坏封装的前提下,捕捉一个对象的内部状态,并在对象之外保存这个状态,这样以后可以将该对象恢复到以前保存的状态。备忘录模式中有三个关键的角色,原发器(originator)、备忘录(memento)、看管人(caretaker)。原发器创建一个保存其状态的备忘录,原发器知道如何跟备忘录交互,但不知道备忘录如何保存,原发器将备忘录传递给看管者,看管者不知如何跟备忘录交互,但会将备忘录放到安全之处保存好。何时使用备忘录模式需要保 阅读全文

posted @ 2013-06-06 22:27 Markhy 阅读(538) 评论(1) 推荐(0) 编辑

2013年4月12日

【转】ASIHTTPRequest-数据压缩

摘要: 使用gzip来处理压缩的响应数据从0.9版本开始,ASIHTTPRequest会提示服务器它可以接收gzip压缩过的数据。许多web服务器可以在数据被发送之前压缩这些数据——这可以加快下载速度减少流量使用,但会让服务器的cpu(压缩数据)和客户端(解压数据)付出代价。总的来说,只有特定的几种数据会被压缩——许多二进制格式的文件像jpeg,gif,png,swf和pdf已经压缩过他们的数据了,所以向客户端发送这些数据时不会进行gzip压缩。文本文件例如网页和xml文件会被压缩,因为它们通常有大量的数据冗余。怎样设置apache的mod_deflate来使用gzip压缩数据apache 2.x以上 阅读全文

posted @ 2013-04-12 14:06 Markhy 阅读(411) 评论(0) 推荐(0) 编辑

导航