摘要: 在Windows时代,大家肯定对SendMessage,PostMessage,GetMessage有所了解,这些都是windows中的消息处理函数,那对应在ios中是什么呢,其实就是NSRunloop这个东西。在ios中,所有消息都会被添加到NSRunloop中,分为‘input source’跟'timer source'种,并在循环中检查是不是有事件需要发生,如果需要那么就调用相应的函数处理。我们在使用NSTimer的时候,可能会接触到runloop的概念,下面是一个简单的例子: 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad 阅读全文
posted @ 2014-02-13 11:03 洋芋,阿喜欢! 阅读(28213) 评论(1) 推荐(5)
摘要: 何为闭包?引用维基上面的说法,闭包是词法闭包的简称,就是引用了自由变量的函数,这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。下面就自己熟悉的语言都来一种闭包。C#:1 var x = 1;2 Action action = () =>3 {4 var y = 2;5 var result = x + y;6 Console.Out.WriteLine("result = {0}", result);7 };8 action();在action()执行的时候就引用了外界 阅读全文
posted @ 2014-02-12 12:09 洋芋,阿喜欢! 阅读(2178) 评论(0) 推荐(1)
摘要: 在Objective-C中,消息是通过objc_msgSend()这个runtime方法及相近的方法来实现的。这个方法需要一个target,selector,还有一些参数。理论上来说,编译器只是把消息分发变成objc_msgSend来执行。比如下面这两行代码是等价的。1 [array insertObject:foo atIndex:5]; 2 objc_msgSend(array, @selector(insertObject:atIndex:), foo, 5);class的方法列表其实是一个字典,key为selectors,IMPs为value。一个IMP是指向方法在内存中的实现。很重. 阅读全文
posted @ 2014-02-10 11:16 洋芋,阿喜欢! 阅读(3143) 评论(0) 推荐(0)
摘要: OOD的五个原则:(一):SRP,单一职责原则(只有佛自己应当担负起公布玄妙秘密的职责...) 一个类应该只有一个发生变化的原因. 因为每一个职责都是变化的一个轴线,当需求变化时,该变化会反映为类的职责的变化.如果一个类承担了多于一个的职责,那么引起它变化的原因就会有多个.如果一个类承担的职责过多,就等于把这些职责耦合在了一起. 注意:仅当变化发生时,变化的轴线才具有实际意义;如果没有征兆,那么应用SPR或者其它任何原则都是不明智的.(二):OCP,开放-封闭原则(两截门,一个被水平分割为两部分的门,这样每一部分都可以独立保持开放或者封闭) 软件实体(类,模块,函数等)应该是可以扩展的,但.. 阅读全文
posted @ 2009-01-13 10:29 洋芋,阿喜欢! 阅读(2175) 评论(1) 推荐(0)
摘要: 僵化性(设计难于改变): 很难对软件进行改动.换句话说就是即使是一个很小的改动,也会导致有依赖关系的模块中的连锁改动脆弱性(设计易于遭到破坏): 在进行一个改动时,可能会导致程序的许多地方出现问题.顽固性(设计难以重用): 设计中包含了对其它系统有用的部分,但要把这部分从系统中分离出来其所需要的努力和风险是巨大的.粘滞性(难以做正确的事): 软件的粘滞性:当而临一个改动时,开发人员常常发现有多种方法,其中一些方法会保持设计,一些方法会破坏设计(也就是拼凑的方法),当可以保持系统设计的方法比拼凑手法更难应用时,就表明设计具有高的粘滞性. 硬件的粘滞性:当开发环境迟钝,低效时,就会... 阅读全文
posted @ 2009-01-12 13:57 洋芋,阿喜欢! 阅读(328) 评论(1) 推荐(0)