摘要: 主要是记录下iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景.一、处理机制界面响应消息机制分两块,(1)首先在视图的层次结构里找到能响应消息的那个视图。(2)然后在找到的视图里处理消息。【关键】(1)的过程是从父View到子View查找,而(2)是从找到的那个子View往父View回溯(不一定会往回传递消息)。1.1、寻找响应消息视图的过程可以借用M了个J的一张图来说明。处理原理如下:• 当用户点击屏幕时,会产生一个触摸事件,系统会将该事件加入到一个由UIApplication管理的事件队列中•UIApplication会从事件队列中取出最前面的事件进行分发以便处理,通常,先发送事 阅读全文
posted @ 2013-10-14 20:49 Quains 阅读(25415) 评论(5) 推荐(4) 编辑
摘要: 一,Xcode编译出现Link错误,出现"duplicate symbols for architecture i386 clang"提示.问题:链接时,项目有重名文件.解决:根据错误提示,做如下检查:1.Taraget->Build Settings->Link Binary With Libraries检查是否有重复lib.2.全工程搜索下重名文件,决定如何删除.二,关于Category位于静态库时,引用该静态库的工程使用Category,出现"unrecognized selector sent to class"提示.问题:标准UNI 阅读全文
posted @ 2013-08-22 21:40 Quains 阅读(31327) 评论(0) 推荐(2) 编辑
摘要: 一,重新组织函数1.首先找出局部变量和参数. 1>任何不会被修改的变量都可以当作参数传入.2.去掉临时变量Replace Temp with Query.用查询函数代替临时变量3.Extract Method难点:有局部变量依赖.(用方法返回值的方式去赋回值)4.Inline Method内联函数(三段式)5.Introduce Explaining Variable引入解释性变量,(和2相反)6.Split Temporary Variable(分解临时变量:针对每次赋值,创造一个独立\对应的临时变量)7.移除对参数的赋值(更明确,不会误解按引用传递和按值传递)8.已函数对象取代函数( 阅读全文
posted @ 2013-07-18 19:56 Quains 阅读(443) 评论(0) 推荐(0) 编辑
摘要: GCD多线程下,实现线程同步的方式有如下几种:1.串行队列2.并行队列3.分组 4.信号量实例: 去网上获取一张图片并展示在视图上. 实现这个需求,可以拆分成两个任务,一个是去网上获取图片,一个是展示在视图上. 这两个任务是有关联的,所以需要同步处理.下面看这几种方式如何实现.一、1.串行队列1.1[GCD相关:](1)GCD下的dispatch_queue队列都是FIFO队列,都会按照提交到队列的顺序执行.只是根据队列的性质,分为串行队列:用户队列、主线程队列 并行队列.(2)同步(dispatch_sync)、异步方式(dispatch_async). 配合串行队列和并行队列使用.1.2同 阅读全文
posted @ 2013-07-10 20:58 Quains 阅读(12104) 评论(1) 推荐(1) 编辑
摘要: 通用结构体:View Code typedef struct{int r[MAXSIZE+1]; //下标从1开始用,0为哨兵或其他用int length; }SqList;一.选择排序1.1简单选择排序:(1)思路:通过n-i次关键字比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换.(2)代码:View Code void SelectSort(Sqlist *L){ int i, j, min; for(i=1; i<L->length; i++) { for(j=i+1; j<L->length; j++) { ... 阅读全文
posted @ 2012-04-03 00:25 Quains 阅读(744) 评论(0) 推荐(1) 编辑
摘要: 老话题,关于js的自定义事件,用处很多(控件控都懂的..),最明显的是实现观察者模式.简易版代码:View Code 1 function Class1(){ 2 } 3 Class1.prototype ={ 4 //间接调用 5 evt : function(){ 6 if(this.onEvt){ 7 for(i=0; i<this.onEvt.length; i++){ 8 this.onEvt[i](); //... 阅读全文
posted @ 2012-04-01 00:49 Quains 阅读(6683) 评论(0) 推荐(2) 编辑
摘要: (接上篇)5)外观模式(Facade Pattern) 6)享元模式(Flyweight Pattern) 7)代理模式(Proxy Pattern)5.外观模式1)简介:为子系统中的一组接口提供一个一致的界面.用来向外隐藏内部的具体细节.2)结构图:代码:View Code 1 /// 子系统1 2 public class SubSystem1 3 { 4 /// <summary></summary> 5 public void Operation1() 6 { 7 Console.Write("operation1..."); 8... 阅读全文
posted @ 2012-03-10 10:02 Quains 阅读(1091) 评论(2) 推荐(4) 编辑
摘要: 结构型模式用来处理类或者对象的组合,主要包含以下7种设计模式: 1)适配器模式(Adapter Pattern) 2)桥接模式(Bridge Pattern) 3)组合模式(Composite Pattern) 4)装饰者模式(Decorator Pattern) 5)外观模式(Facade Pattern) 6)享元模式(Flyweight Pattern) 7)代理模式(Proxy Pattern)1.适配器模式1)简介:将一个类的接口转换成客户希望的另外一个接口.主要是用来解决原本的接口不兼容问题.或者用来统一接口命名.2)结构图:3)代码:View Code 1 /// 目标类(客户. 阅读全文
posted @ 2012-03-09 19:29 Quains 阅读(1080) 评论(0) 推荐(2) 编辑
摘要: 创建型模式用来处理对象的创建过程,主要包含以下5种设计模式: 1)工厂方法模式(Factory Method Pattern) 2)抽象工厂模式(Abstract Factory Pattern) 3)建造者模式(Builder Pattern) 4)原型模式(Prototype Pattern) 5)单例模式(Singleton Pattern)1.工厂方法1)结构图:2)代码:View Code 1 /// 抽象工厂 2 public interface IFactory 3 { 4 /// <summary></summary> 5 Pr... 阅读全文
posted @ 2012-03-08 10:30 Quains 阅读(1411) 评论(2) 推荐(5) 编辑
摘要: 虽说OO融汇贯通后,设计模式这种东西用起来就是‘心中有剑手中无剑’。可惜小弟还未达到这种水平,正好近期在准备面试的东西,就顺便整理了下,一来复习、二来方便以后查阅。一、六大设计原则1)开闭原则:一个软件实体应该对扩展开放对修改闭合。 2)里氏代换原则:任何能使用父类的地方一定能使用子类。 3)依赖倒转原则:要依赖于抽象不要依赖于实现。或者是抽象不应该依赖与细节,细节应该依赖于抽象。 4)合成聚合复用原则:尽量使用合成聚合而不是继承去实现复用。 5)迪米特法则:一个软件实体应该尽可能少的与其它实体发生相互作用。 6)接口隔离原则:应当为客户提供尽可能小的单独的接口而不应该提供大的综合性的接口。二 阅读全文
posted @ 2012-03-08 10:29 Quains 阅读(520) 评论(0) 推荐(0) 编辑
无觅相关文章插件,快速提升流量