1、类是对象的抽象,对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占有内存空间。
2、深拷贝:内容拷贝,会产生新的对象。新对象计时器置为1,源对象计数器不变。
3、浅拷贝:指针拷贝,不会产生新的对象,原对象计时器加1。
4、拷贝自定义对象,必须实现<NSCopying>协议或<NSMutableCopying>协议。
5、copy 产生的副本是不可变的, mutableCopy产生的副本是可变的。
1、#import不会引起交叉编译,#include会。
2、 沙盒就是一个目录,每个app都有自己独立的沙盒,用来存放app的本地文件(如视频、音频、图片等文件),其他app不能访问。
3、沙盒包含三个目录:a、Documents存放长期使用的文件。b、Library系统存放文件。c、tmp存放临时文件,App重启时该目录下的文件清空。
4、
1、xcode中oc扩展名.m代表message,指的是oc的一个主要的特性。c++扩展名.mm。
2、#import 引入头文件,是GCC编译器提供的,可保证头文件只被包含一次。相似于c中的#ifdef。
3、Cocoa框架组成部分有Foundation和Application Kit框架,Foundation框架处理的是用户界面之下的层(layer)中的特性,例如数据结构和通信机制。每个框架都有一个主头文件,它包含了所有框架的各个头文件。
4、前缀NS表示函数来自Cocoa而不是其他工具包。
5、oc中的BOOL是带符号的字符类型(signed char)的定义,8位存储空间,YES定义为1,NO定义为0,如果一个大于8位的整型值赋给BOOL,那么只有低位字节用作BOOL值。
1、间接的含义:不在代码中直接使用某个值,而是使用指向该值的指针。
2、变量与间接:基本变量就是间接的一种实际应用。
3、过程式程序建立在函数之上,数据为函数服务,函数第一、数据第二。面向对象编程以程序的数据为中心,函数为数据服务,数据第一、函数第二。
4、id是一种泛型,表示任何种类的对象,实际是一个指针。
5、通知对象执行某种操作称为发送消息。
6、类:是一种结构,表示对象的类型。
7、对象:是一种结构,包含值和指向其类的隐藏指针。
8、实例:是对象的另一种称呼。
9、消息:是对象可以执行的操作,用于通知对象去做什么。
10、方法:是为响应消息而运行的代码。
11、方法调度程序:是oc使用的一种机制,用于推测执行什么方法以响应某个特定的消息。
12、接口:是对象的类应该提供的特性的描述。
13、实现:是使接口正常工作的代码。
14、OC中的方法都是public,不存在真正的私有方法,也无法将某个方法标识私有方法,这是oc动态本质的副作用。
15、-(返回值) 方法:(参数类型)参数1:(参数类型)参数2 叫做成员方法或对象方法。
16、+(返回值) 方法:(参数类型)参数1: (参数类型) 参数2 叫做类方法、工厂方法或静态方法。
17、isKindOfClass来确定一个对象是否是一个类的成员,或者是派生自该类的成员
18、isMemberOfClass只能确定一个对象是否是当前类的成员
1、oc中的函数都是虚函数。
2、oc中不支持多继承,可用分类和协议实现多继承的优点。
3、复合:是通过包含作为实例变量的对象指针实现的。严格的讲,只有对象之间的组合才能叫复合。
4、oc中所有对象之间的交互都是通过指针实现的。
5、所有oc对象都存在动态分配的内存中,即堆中创建。
6、类别:是一种为现有的类添加新方法的方式。
7、oc类声明得数据缺省是protected
8、NSString不可变字符串,NSMutableString可变字符串。
9、子类和父类不能有相同的成员变量。
文件管理
1、NSFileHandle不能创建文件,只能对现有的文件进行读写。
1、UIWindow 的级别从低到高, normal、status、alert
2、