self关键词的使用
- 概念
它总是指向该方法的调用者。最大的作用就是让类中的一个方法访问该类的另一个方法或成员变量。
#import <Foundation/Foundation.h>
@interface Student : NSObject
-(void)sleep;
-(void)study;
@end
#import "Student.h"
@implementation Student
-(void)sleep{
NSLog(@"睡觉");
}
-(void)study{
NSLog(@"学累了,该睡觉了");
[self sleep];
}
在实例方法中的self代表的是对象的首地址
成员变量
- 概念
成员变量是指在类接口部分或类实现部分定义的变量。在OC中,成员变量都是实例变量,从创建开始起存在,直到系统完全销毁这个实例。(只要实例存在,程序就可以访问该实例的实例变量)
只要实例存在,程序就可以访问该实例的实例变量,在程序中访问实例变量的语法:实例->实例变量;
模拟类变量
通过内部局部变量来模拟类变量。为了模拟类变量,可以在类实现部分定义个 static 修饰的全局变量,并提供一个类方法来暴露该全局变量。
单例模式
如果一个类始终只能创建一个实例,则这个类称为单例类。
单例类可以通过 static 全局变量来实现,程序考虑定义一个 static全局变量,该变量用于保存已经创建的 singleton 对象——每次程序需要获取该实例的时候,先判断该 static 全局变量是不是为 nil, 如果为 nil,则初始化一个实例并赋值给 static 全局变量。