标签:
1. self可以用在对象方法和类方法中
2. self是个指针
3. 在对象方法使用self
1. self是一个指针, 在对象方法中指向当前对象——谁调用这个对象方法, 谁就是这个对象方法的当前对象
2. 作用: 可以使用self来显式的访问当前对象的成员
可以使用self关键字来显式的访问当前对象的属性
以前都是对象指针->属性
现在可以 self->属性
可以使用self来显式的调用当前对象的其他对象方法
3. 必用场景
如果方法中存在和属性名同名的局部变量, 这时候如果写变量名就访问的是这个局部变量, 如果想要访问属性就必须用self
如果在对象方法中要调用当前对象的其他对象方法, 必须self
4. 选用场景
在方法中, 如果没用和属性同名的局部变量, 写属性名那就是访问的属性名
5. 注意: 属性的名字以下划线开头, 局部变量不要以下划线开头, 这样就不会发生重名的这种问题
4. 在类方法中使用self
1. 类加载: 当类第一次被访问的时候, 就会就爱那个这个类存储在代码段, 一旦存储, 直到程序结束才会被释放
2. 在类方法中, self也是一个指针, 这个指针指向当前这个类在代码段中的地址
3. 如何拿到类在代码段的地址:
1. 查看对象的isa指针
2. 在类方法中查看self指针
3. 对象方法class, [对象 class], 得到这个对象所属的类的地址
4. 类方法class, [类 class] 也可以得到这个类所在的地址
5. 在类方法中, self确实是指向当前这个类的. 即self代表当前这个类, 在某种程度上, 我们就可以这么认为, self就是当前类, 当前类和self完全等价->在类方法中, 可以使用当前类的地方, 完全可以使用self来代替
在类方法中, 可以使用self来代替当前类, 使用当前类的地方, 可以使用self来代替——要调用当前类的其他类方法的地方, 就可以用self来调用
在类方法中创建当前类的对象的时候, 也可以用self来代替[self new];
但是不能够用来声明变量;
1. self可以使用在对象方法和类方法中
2. 在对象方法中, self代表当前对象, 可以使用self来显式的访问当前对象的成员
可以使用self来访问当前对象的属性, 调用当前对象的对象方法
注意: 在对象方法中不能使用self来调用类方法, 因为类方法必须使用类名来调用, 而这个时候, self不代表当前类
3.在类方法中, self代表当前类→可以使用self来调用当前对象的类方法
注意: 在类方法中, 不能使用self访问属性调用对象方法
标签:
原文地址:http://www.cnblogs.com/SquirrelStock/p/5499178.html