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