自学笔记2 | 青训营笔记

105 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第5天

自学笔记2 | 青训营笔记

OC自学笔记

匿名对象:只用一次

  1. 用途:
    1. 只需调用一次对象方法,不需要保留对象
    2. 作为参数,只需要将一个对象传给一个方法,可以省一个指针

分组导航标记

  1. 分割线:#pragma mark -
  2. 标题:#pragma mark 分组名
  3. 分割线+标题:#pragma mark - 分组名

异常处理

  1. 异常:正常编译/链接/执行。在特征情况下,程序发生终止
  2. 异常处理:
    1. @try{}
    2. @catch(NSException *ex){}
    3. @finally{}无论是否发生异常都会被执行
    4. @catch中记录错误信息
      1. NSLog(@"原因:%@",ex)
  3. 注意:
    1. 不是所有错误都可以处理
      1. C语言异常无法处理
      2. 除0错误
  4. 判断对象上是否有某个方法
    1. if([对象 respondsToSelector:@selector(方法名)])

Getter/setter与装饰器:替代实例属性

  1. 背景:实例属性需要手写
  2. 声明
    1. getter/setter声明
    2. getter/setter实现
  3. setter
    1. set开头,去掉下划线,首字母大写
      1. -(void)setAge:(int)age;
    2. 必须有参数,类型和属性相同
    3. 没有返回值
  4. getter
    1. 属性去掉下划线
      1. -(int)age;
    2. 没有参数
    3. 返回属性
  5. 封装
    1. 读:只提供getter
    2. 只写:只提供setter

OC中的static关键字

  1. static:不能修饰属性和方法
    1. 修饰方法中的局部变量:静态变量
    2. 存储在常量区,方法执行完毕,不会回收,再次执行时,不会再次声明

self关键字:指针

  1. 对象方法中指向当前对象
  2. self指针:指向当前对象地址
  3. 类方法中指向当前类
    1. 指向当前类加载到的代码段地址,与实例化的对象的isa指针,有相同的值
    2. 实验中发现,对象的isa指针和类地址差4个字节,d8->dd

Super关键字:父类指针,用于重写

  1. 只能用来调用方法,不能用来访问属性
  2. 对象方法中
    1. Super:用于调用当前对象从父类继承的对象方法
  3. 类方法中
    1. Super:用于调用当前类从父类继承的类方法

今天开始,除了基础知识,要开始接触一些简单的项目了,加油!