。类的继承[NSObject 是根类],继承之后可以用supper调用父类的方法,也可以重载方法,也可以添加新的方法
@interface classname:NSObject
@end
。@class指令;在类中调用类可以用@class指令,也可以用#import,推荐@class;效率更加高,编译器只需要知道这是个类就行了,不需要进行编译
。抽象类:abstract
。多态:来自不同类的对象可以实现共享相同名称的方法。
。动态绑定和id类型。id可以用来村促属于任何类的对象。
。异常处理
@try{
}
@catch(NSException *exception){
}
。实例变量的作用域指令
@protected[默认情况下]
@private[只能在该类的方法中直接访问]
@public[都可以访问]
@package[在实现该类的图像的任何地方访问]
。外部变量 extern
。静态变量 static
。自动局部变量 auto
。恒量 const
。必变变量 volatile
。枚举类型enum
。typedef语句:为数据类型指派成另外一个名称
。数据类型强制装换(类型)例如:(int) a
。分类:以模块的方式向类添加新的方法
[分类注意事项:不能添加变量(可以考虑创建子类);不推荐重载方法[推荐用子类];可以不实现分类中的所有方法]
@interface classname(methodname)
。协议是多个类共享的一个方法列表。@protocol指令
预处理程序[以井号#标记]
#define语句
#运算符 ,如果在宏定义中参数之前放置一个#,那么在调用该宏
##运算符,
#import语句
条件编译 #ifdef #endif #else #ifndef #undef
数组、函数、方法、结构、指针、指针运算、联合(union)
。Foundation框架
框架是由类、方法、函数、文档按照一定的逻辑组合起来的集合。
。数字对象:NSNumber、NSInteger
。自动释放池,对象发送一条autorelease消息时,就将该对象放到这个池。
。可变对象与不可变对象
NSString类 NSMutableString类
。NSArray类 数组对象
。词典对象 NSDictionary NSMutableDictionary
。集合对象 NSSet[一组单价对象集合]
。使用文件NSFileManager、NSFileHandle
------------------------
内存管理
Foundation创建自动释放池之后,将自动为这个池添加特定的数组、字符串、字典以及其他对象
只有在确定对象的每个地方都使用之后才能释放自动释放池的内存。
。浅复制、深复制
<NSCoping>协议
。归档[用某种格式来保存一个或多个对象,以便以后还原这些对象的过程]
NSKeyedArchiver归档\NSData