在KNZPerson類中,我們提供了-(instancetype)initWithName:(NSString *)name age:(int)age sex:(BOOL)sex指定初始化方法,我們還應(yīng)該提供工廠方法快速創(chuàng)建一個對象
- 在KNZPerson.h頭文件中聲明一個工廠方法,以類名首字母小寫,開頭,后面帶參數(shù)。
- +(instancetype)personWitName:(NSString *)name age:(int)age sex:(BOOL)sex;
- 在KNZPerson.m實(shí)現(xiàn)文件中實(shí)現(xiàn)工廠方法:
+(instancetype)personWitName:(NSString *)name age:(int)age sex:(BOOL)sex
{
return [[self alloc]initWithName:name age:age sex:sex];
}
在main.m文件中利用工廠方法快速創(chuàng)建一個對象
<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>運(yùn)行,打印如下:
2016-10-08 14:19:26.711783 自定義類[4440:222162] kenzo,28,1
Program ended with exit code: 0