在KNZPerson类中,我们提供了-(instancetype)initWithName:(NSString *)name age:(int)age sex:(BOOL)sex指定初始化方法,我们还应该提供工厂方法快速创建一个对象
- 在KNZPerson.h头文件中声明一个工厂方法,以类名首字母小写,开头,后面带参数。
- +(instancetype)personWitName:(NSString *)name age:(int)age sex:(BOOL)sex;
- 在KNZPerson.m实现文件中实现工厂方法:
+(instancetype)personWitName:(NSString *)name age:(int)age sex:(BOOL)sex
{
return [[self alloc]initWithName:name age:age sex:sex];
}
在main.m文件中利用工厂方法快速创建一个对象
<code>
//
// main.m
// 自定义类
//
// Created by 李阳 on 2016/10/7.
// Copyright © 2016年 kenzo. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "KNZPerson.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
KNZPerson *person = [KNZPerson personWitName:@"kenzo" age:28 sex:YES];
NSLog(@"%@,%d,%d",person.name,person.age,person.sex);
}
return 0;
}
</code>运行,打印如下:
2016-10-08 14:19:26.711783 自定义类[4440:222162] kenzo,28,1
Program ended with exit code: 0