05 2016 档案
摘要:输出结果如下: DataStruct[11210:2189074] testStr's Address = 0x100004280 DataStruct[11210:2189074] testStrCopy Address = 0x100004280 DataStruct[11210:2189074
阅读全文
摘要:一."Black Magic":Method Swizzling 利用 Runtime 特性把一个方法的实现与另一个方法的实现进行替换,也可以用runtime的四维理解——修改Dispatch Table让一个方法的IMP对应到我们指定的IMP上去 二.实例说明:比如我们想要在APP中记录每一个Vi
阅读全文
摘要:代理模式:为其他对象创建一个代理以控制对这个对象的访问 UML解释:客户端向Proxy发起一个Request()请求,Proxy对象会把这个Request转发给Proxy对象的RealSubject。RealSubject会实施操作间接满足Subject要求。举一个生活中的例子就比较好理解了——去饭
阅读全文
摘要:责任链模式:使多个对象都有机会处理请求,从而避免发送者和接受者之间发生耦合。 应用场景: 有多个对象可以处理请求,而处理程序只有在运行时才能确定 例如: 英雄联盟中伤害计算,伤害类型分为AP、AD、真实伤害(无视任何防御直接造伤害)。 有多个对象可以处理请求,而处理程序只有在运行时才能确定 结构分析
阅读全文
摘要:组合模式:将对象组合成树形结构以表示"部分-整体"的层次结构。组合是的用户对单个对象和组合对象的使用具有一致 Cocoa Touch中组合模式使用:Cocoa Touch框架中,UIView被组织成一个组合结构。每个UIView的实例可以包含UIView的其他实例,形成同一结构。 视图组合结构参与绘
阅读全文
摘要:适配器模式:将一个类的借口转换成客户端希望的另一个接口 有一个很直观的图: 例如 :电源适配器(将110V电压转换成220V电压,其中Traget是220V电压,adaptee就是110V电压,Adapter就是适配器): 代码实现: 1 #import "Adapter.h" 2 3 @imple
阅读全文
摘要:抽象工厂方法:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 与工厂方法区别: 抽象工厂通过对象组合创建抽象产品、工厂通过类集成创建抽象产品 抽象工厂创建多系列产品、工厂创建一种产品(例如上篇都属于鞋) 抽象工厂修改父类的接口才能支持新产品、工厂子类化并重写工厂方法创建新产品 例
阅读全文
摘要:工厂方法:定义创建对象的借口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到了子类 例如 :Shoes厂有两个子类(Newbalance、Nike)构建类图如下: 代码实现: 1 #import "shoes.h" 2 3 @implementation shoes 4 5 -(insta
阅读全文
摘要:一.外部通知使用场景:假如你想要用某宝上的一个商品分享给朋友,你想这个物品的URL分享给你的好友。之后你的好友点击开此URL,如果在装了某宝的情况下,iPhone会自动跳转到某宝 二.实现步骤: 自定义URL模式 响应URL请求 三.Demo:  (p.s 注意层级) 现在得到的就是自定义URL模
阅读全文

浙公网安备 33010602011771号