oc是一门全动态语言,oc的一切都是基于runtime实现的。
为了能正确理解runtime,我们首先来由其他的语言引出动态的oc。
1.传统的面相过程的语言开发,例如c语言,编译器做到的是:把一份代码里的函数名称,转化为一个相对的内存地址,把调用这个函数的语句转换成一个jmp跳转指令,在...
分类:
其他好文 时间:
2014-06-07 03:48:20
阅读次数:
1000
面向对象的3个基本要素:封装、继承、多态面向对象的5个基本设计原则:单一职责原则(Single-Resposibility Principle)
其核心思想为:一个类,最好仅仅做一件事,仅仅有一个引起它的变化。单一职责原则能够看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以...
分类:
其他好文 时间:
2014-05-29 11:43:07
阅读次数:
190
以动手实践为荣,以只看不练为耻。以打印日志为荣,以单步跟踪为耻。以空白分隔为荣,以制表分隔为耻。以单元测试为荣,以手工测试为耻。以代码重用为荣,以复制粘贴为耻。以多态应用为荣,以分支判断为耻。以Pythonic为荣,以冗余拖沓为耻。以总结思考为荣,以不求甚解为耻。刚刚看到,不可尽信,也不可全部不信。...
分类:
编程语言 时间:
2014-05-29 04:59:35
阅读次数:
348
//1.对象在完成创建的同时,内部会自动创建一个引用计数器,这个计数器,是系统用来判断是否回收对象的唯一依据,当我们的引用计数retainCount
= 0的时候,系统会毫不犹豫回收当前对象//2.[对象 release] reatinCount - 1//3.[对象 retain] reatin....
分类:
其他好文 时间:
2014-05-28 18:43:14
阅读次数:
258
oc协议在Object-C中,委托和数据源都是由协议实现的。协议定义了一个类与另一个类进行沟通的先验方式。它们包含一个方法列表,有些是必须被实现的,有些是可选的。任何实现了必需方法的类都被认为符合协议。协议,是通过网络,计算机使用者进行通讯后,互相进行约定规定的集合。两个类进行通讯,用协议就比较方便...
分类:
其他好文 时间:
2014-05-28 16:34:01
阅读次数:
217
1 分类就是类的补充和扩展,本质上是类的一部分,把一个类分成若干部分,每个部分就是分类。2 语法*
文件中的语法@interface 主类类名(分类类名)* 文件名通常为:主类名+分类名* 调用方法时,只需要向主类引用放送消息即可3 使用分类的方式*
可以给一个类增加功能(增加方法)* 将类分成若干...
分类:
其他好文 时间:
2014-05-28 16:08:57
阅读次数:
191
oc中单例模式可以使用以下方法来实现+ (YourClass *)sharedInstance{
static dispatch_once_t once; static YourClass *sharedInstance = nil;
dispatch_once(&once, ^ ...
分类:
其他好文 时间:
2014-05-28 03:11:58
阅读次数:
168
早上十一点,在周六的惬意中起床。窗外的杭州雾霾再次光临,想想几年前还是一种只会在清晨遇到的亲切的朦胧美,到如今已经沦为对环境和未来的担忧,原来已经
2014。在编程语言界,有个著名的鸭子测试,用来明确部分动态语言的多态特性,可以用下面这句话来表达:If it looks like a duck, s...
分类:
其他好文 时间:
2014-05-28 01:45:26
阅读次数:
306
面向切面编程(AOP是Aspect Oriented
Program的首字母缩写),我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码...
分类:
其他好文 时间:
2014-05-27 23:48:56
阅读次数:
544
这多态,我觉得是最利害的。在开发大型程序中。但,也是需要经过足够多的实践经验才能随心利用的。class Quadrangle{ private
Quadrangle[] qtest = new Quadrangle[6]; private int nextIndex = 0; pu...
分类:
编程语言 时间:
2014-05-26 17:53:47
阅读次数:
295