11 2014 档案
摘要:C语言使用“静态绑定”,也就是说,在编译期就能决定运行时所应调用的函数(也就是说函数地址硬编码在指令之中)。 如果是内联函数,就无法硬编码在指令之中,而是要在运行期读取出来(也就是动态绑定)。 在底层,所有方法都是普通的C函数。 OC对象的每个方法都可以视为简单的C函数。 <return_type>
阅读全文
摘要:在对象中存放相关信息的方式: 1、从对象所属的类中继承一个子类,然后改用这个子类对象。 然而有时类的实例可能是由某种机制所创建的,无法使用这种机制创建自己所写的子类实例。所以采用第2种方式 “关联对象” 2、关联对象 可以给某对象关联多个对象,这个对象用“键”来区分,存储对象值的时,可以指明“存储策
阅读全文
摘要:类簇模式把实现细节隐藏在一套简单的公共接口(抽象基类)后面。以保持接口简洁,用户无须自己创建子类实例,只需调用基类方法创建即可。 例如:UIButton 的 buttonWithType: 工厂模式是创建类簇的办法之一。 OC中的系统框架中普通使用此模式。 大部分collection类都是类簇。 判
阅读全文
摘要:1、== 操作符 比较的是两个指针本身,而不是其所指的对象。 2、NSObject协议中的isEqual:方法 一般来说两个类型不同的对象总是不相等的。如果已经知道两个对象都属于同一个类,那么就可以使用该方法了。 例: - (BOOL)isEqual:(id)object { if (self ==
阅读全文
摘要:直接访问(实例变量),间接访问(属性)。 在对象外部: 总是使用属性来访问。 在对象内部: 除了几种特殊情况外,强烈建议在读取实例变量时采用直接访问形式。而在设置实例变量时通过属性来做。 在初始化方法及dealloc方法中,总是使用直接通过实例变量来读写数据。 例:以下会抛出异常 -(void)se
阅读全文
摘要:通过对象来存储并传递数据, 在对象之间传递数据并执行任务的过程称为“消息传递”。 OC对象会把其所需要的数据保存为实例变量并通过“存取方法”来访问。这称为属性。 @dynamic 告诉编译器:不要自动创建实现属性所用的实例变量,也不要为其创建存取方法。这样在编译时虽然发现没有定义存取方法也不会报错,
阅读全文
摘要:C++11标准扩充了枚举的特性。 枚举只是一种常量命名方式。给常量取一个易懂的名字而已。 几种定义方式: 1、 enum State { State1, State2, State3, }; enum State aState = State1; //使用 2、 enum State { State
阅读全文
摘要:定义常量的几种方式: 1、#define ANIMATION_DURAION 0.3 //定义了一个动画时长的常量, 预处理过程会把碰到的所有ANIMATION_DURAION一律替换成0.3 2、static const NSTimeInterval kAnimationDuration = 0.
阅读全文
摘要:名词翻译: 语法糖(syntactic sugar):是指计算机语言中与另外一套语法等效,但是开发者用起来却更加方便的语法。 语法糖可令程序更易读,减少代码出错机率。 字面数值 NSNumber *number = @1; 字面量数组 NSArray = @[]; @[下标]; //下标访问元素 字
阅读全文
摘要:@class (向前声明) 只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,后面会再告诉你。 #import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。 所以,#import比起#include的好处就是不会引起交叉编译。 注意:如果在各自头文件中引入对方的头文
阅读全文
摘要:1、OC语言是由Smalltalk演化而来。该语言使用“消息结构” 而 非“函数调用”。 使用“消息结构”的语言,其运行时所执行的代码由运行环境来决定; 编译器不需要关心接收消息的对象是什么类型,只在运行时才会去查找所要执行的方法,这也叫动态绑定。 而使用“函数调用”的语言,则由编译器决定。 2、O
阅读全文

浙公网安备 33010602011771号