类方法
类方法,也称静态方法或者工厂方法,以+开头,指的是用static关键字修饰的方法。类方法属于整个类,在项目中工具类的封装多用工厂方法调用,调用格式[类名 类方法];
举个例子,如果多个界面都需要从沙盒中取出某个数据,就可以把这个方法进行封装
新建一个类,继承于NSObject,类名为GetHead。
在GetHead.h中声明一个类方法+(NSString *)getHeadString;//这里的getHeadString就是类方法名。(NSString *)就是这个类方法返回的值的类型。
在GetHead.m中实现声明的方法:
+(NSString *)getHeadString
{
NSString *documentPathStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *strPath = [documentPathStr stringByAppendingPathComponent:@"/obj.txt"];
NSString *newStr = [NSString stringWithContentsOfFile:strPath encoding:NSUTF8StringEncoding error:nil];
return newStr;
}
ViewController中调用这个方法:NSString *str = [GetHead getHeadString];
类方法也可以同样传参数进去,比如进行网络请求时候,可以把网络请求封装,传入不同的请求体即可。
实例方法
实例方法指的是不用static关键字修饰的方法,以-开头,它属于类的某一个或某几个实例对象,即类对象必须实例化后才可以使用的方法,调用方式[对象名 对象方法];
例:有一个Person类,继承于NSObject,在.h文件中声明一个方法-(void)say;.
在.m文件中实现这个方法-(void)say{NSLog(@"哈哈哈");}
ViewController要想调用这个方法:
Person *xm = [[Person alloc]init];
[xm say];
构造方法
什么是构造方法:初始化对象的方法。一般情况下,在 OC 当中创建1个对象分为两部分(new 做的事):alloc:分配内存空间,init :初始化对象。
构造方法分为系统自带和自定义构造方法。
(1)如果是系统自带的构造方法,需要重写父类中自带的构造方法 比如init
(2)如果是自定义构造方法:属于对象方法那么以-号开头,返回值一般为id或者instancetype类型,方法名一般以init开头
系统构造方法书写格式:
- (instancetype)init
{
self = [super init];
if (self) {
}
return self;
}
自定义构造方法:
@property int age;
@property NSString *name;
//自定义构造方法 在初始化的时候为属性"年龄"和"姓名"赋值
- (instancetype)initWithAge:(int)age andName:(NSString *)name;
实现
// 实现自定义构造函数 在初始化的时候为属性赋值
- (id)initWithAge:(int)age andName:(NSString *)name
{
if (self = [super init]) {
_age = age;
_name = name;
}
return self;
}
注意
+号开头的方法内不能调用-号方法