static关键字
- C语言中的static
- oc中的static关键字
- 不可以修饰属性和方法
- 可以修饰方法中的局部变量(使用完不会回收,下次使用直接使用,不用声明)
//不添加static每次创建都会重新执行
static int a = 1;
a++
self关键字
- 在方法的内部可以定义一个和属性名相同的局部变量,这个时候,如果方法中访问这个同名的变量,访问的事局部变量
- 在一个对象方法中要调用当前对象的另外一个对象方法?
- self可以在对象方法和了方法中使用(是一个指针,在对象中指向当前对象(调用者),在类方法中指向当前类)
- self用在对象方法中
- 可以使用self显示的访问当前对象的属性。
self->属性,代表访问的是当前对象的这个属性。
- 可以使用self来调用当前对象的其他对象方法
[self 方法名]
- 使用场景
- 如果方法中存在同名的局部变量,使用self可以访问当前对象同名属性,否则访问的事局部变量
- 调用当前对象的其他对象方法
- 属性要求以下划线开头,局部变量不要求以下划线开头。
- 把slef用在类方法中
- 在类方法中, self也是一个指针,指向当前这个类在代码段中的地址。
- self在类方法中,就相当于是当前这个类。
- 可以在类方法中使用self来显示的调用本类的其他类方法(可以直接使用类名,但建议使用self)
- 在对象方法中,不能使用self调用本类的类方法
- 在类方法中,不能使用self访问对象的成员。
- 总结一下取到类在代码段中的地址
- 调试查看对象的isa指针的值
- 在类方法中查看self值
- 调用对象的对象方法class,就会返回这个对象所属的类在代码段中的地址
- 调用类的类方法class,就会返回这个类在代码段中的地址
- 对象和类方法不能重名,对象和类方法之间可以重名