oc关键字


static关键字

  1. C语言中的static
  • 修饰全局和局部变量,也可以修饰函数
  1. oc中的static关键字
  • 不可以修饰属性和方法
  • 可以修饰方法中的局部变量(使用完不会回收,下次使用直接使用,不用声明)
//不添加static每次创建都会重新执行
static int a = 1;
a++

self关键字

  1. 在方法的内部可以定义一个和属性名相同的局部变量,这个时候,如果方法中访问这个同名的变量,访问的事局部变量
  2. 在一个对象方法中要调用当前对象的另外一个对象方法?
  • self可以在对象方法和了方法中使用(是一个指针,在对象中指向当前对象(调用者),在类方法中指向当前类)
  1. self用在对象方法中
  • 可以使用self显示的访问当前对象的属性。 self->属性,代表访问的是当前对象的这个属性。
  • 可以使用self来调用当前对象的其他对象方法 [self 方法名]
  1. 使用场景
  • 如果方法中存在同名的局部变量,使用self可以访问当前对象同名属性,否则访问的事局部变量
  • 调用当前对象的其他对象方法
  1. 属性要求以下划线开头,局部变量不要求以下划线开头。
  2. 把slef用在类方法中
  • 在类方法中, self也是一个指针,指向当前这个类在代码段中的地址。
  • self在类方法中,就相当于是当前这个类。
  • 可以在类方法中使用self来显示的调用本类的其他类方法(可以直接使用类名,但建议使用self)
  • 在对象方法中,不能使用self调用本类的类方法
  • 在类方法中,不能使用self访问对象的成员。
  1. 总结一下取到类在代码段中的地址
  • 调试查看对象的isa指针的值
  • 在类方法中查看self值
  • 调用对象的对象方法class,就会返回这个对象所属的类在代码段中的地址
  • 调用类的类方法class,就会返回这个类在代码段中的地址
  • 对象和类方法不能重名,对象和类方法之间可以重名

IDEA
学习