1.#import是#Include的增强版,同一个文件无论包含多少次,import只会包含一次。
2.框架:c语言的函数库,基础为Foundation。
3.@autoreleasepool:自动释放池。
4.NSLog:print的增强,①增强了输出调试相关信息(时间-项目名-进程线程号-输出信息),②自动换行,OC新增了一些数据类型只能用NSLog。语法:NSLog(@"hellowrold");NSLog(@"%d",a)。
5.NSString类型的指针变量,NSString *str = @"hello world",用来存储OC字符串地址,占位符%s变为%@
6.NS:NextStep是一个公司
7.@符号,①将c字符串转为OC字符串;②OC中绝大部分关键字都以@符号开头。
8.编译和链接:编译:cc-c xx.m 链接:cc xx.o -framework 框架名称(Foundation)。
9.新增数据类型:布尔类型(YES/NO),Boolean(true/false);id类型:万能指针;nil:与NULL差不多;SEL:方法选择器;block:代码段。
10.新增关键字:@interface,@implementaion,@public。
11.类的格式:类名首字母大写;成员变量以下划线_开头,默认为私有,前面加@publuic为公有;方法名字格式:×××With×××;
12.类的声明:@interface 类名:NSObject
{
定义变量;
}
函数声明;
@end
13.类的实现:@implementaion 类名
函数实现;
@end
13.创建对象:类名 *对象名 = [类名 new];
14.对象的方法声明:-(返回值)方法名称 -void fun;
-(返回值)方法名称:(参数类型)形参名称:(参数类型)形参名称
-void fun:(NSString *)foodName:(int)sum;
15.对象的方法实现:-(返回值)方法名称{ } -void fun{ }
-(返回值)方法名称:(参数类型)形参名称:(参数类型)形参名称{}
-void fun:(NSString *)foodName:(int)sum{}
16.对象的方法调用:[对象名 方法名]; [p1 fun];
[对象名 方法名:实参1:实参2]; [p1 fun:@"hello world":5];
17.nil和NULL区别:nil只能作为指针变量的值。C指针用NULL,OC类指针用nil。
18.导航命令:#pragma mark - 分组名
19.类方法声明: + (返回值类型) 方法名;
类方法不能直接访问类的属性,但是可以在类方法中创建一个对象,来访问对象的属性。
在对象方法中可以直接调用类方法。每个类有个与类名同名的类方法,返回创建的一个对象。
20.类方法调用:[类名 类方法名];
21.异常处理:@try{
可能发生异常
}
@catch(NSException *ex)
{
处理异常
}
@finally
{
无论是否发生异常都执行
}
22.打印指针所指的对象:%@,可以拿到发生异常的原因
23.respondsToSelector是实例方法也是类方法,用于判断某个类/实例是否能处理某个方法(包括基类方法