这是我参与「第四届青训营 」笔记创作活动的的第5天
自学笔记2 | 青训营笔记
OC自学笔记
匿名对象:只用一次
- 用途:
- 只需调用一次对象方法,不需要保留对象
- 作为参数,只需要将一个对象传给一个方法,可以省一个指针
分组导航标记
- 分割线:#pragma mark -
- 标题:#pragma mark 分组名
- 分割线+标题:#pragma mark - 分组名
异常处理
- 异常:正常编译/链接/执行。在特征情况下,程序发生终止
- 异常处理:
- @try{}
- @catch(NSException *ex){}
- @finally{}无论是否发生异常都会被执行
- @catch中记录错误信息
- NSLog(@"原因:%@",ex)
- 注意:
- 不是所有错误都可以处理
- C语言异常无法处理
- 除0错误
- 不是所有错误都可以处理
- 判断对象上是否有某个方法
- if([对象 respondsToSelector:@selector(方法名)])
Getter/setter与装饰器:替代实例属性
- 背景:实例属性需要手写
- 声明
- getter/setter声明
- getter/setter实现
- setter
- set开头,去掉下划线,首字母大写
- -(void)setAge:(int)age;
- 必须有参数,类型和属性相同
- 没有返回值
- set开头,去掉下划线,首字母大写
- getter
- 属性去掉下划线
- -(int)age;
- 没有参数
- 返回属性
- 属性去掉下划线
- 封装
- 读:只提供getter
- 只写:只提供setter
OC中的static关键字
- static:不能修饰属性和方法
- 修饰方法中的局部变量:静态变量
- 存储在常量区,方法执行完毕,不会回收,再次执行时,不会再次声明
self关键字:指针
- 对象方法中指向当前对象
- self指针:指向当前对象地址
- 类方法中指向当前类
- 指向当前类加载到的代码段地址,与实例化的对象的isa指针,有相同的值
- 实验中发现,对象的isa指针和类地址差4个字节,d8->dd
Super关键字:父类指针,用于重写
- 只能用来调用方法,不能用来访问属性
- 对象方法中
- Super:用于调用当前对象从父类继承的对象方法
- 类方法中
- Super:用于调用当前类从父类继承的类方法
今天开始,除了基础知识,要开始接触一些简单的项目了,加油!