标签:
一:基本用法
类工厂方法作用:提高编码效率,快速创建对象的方法
规范:1、一定是+开头
2、方法以类名开头,首字母小写。
3、一定有返回值,返回类型为id/instancetype
比如:在类的声明和实现中
无参数:
+ (instancetype)person;
+ (instancetype)person{
return [[Person alloc] init];
}
在主函数创建对象中就可以直接使用,简化代码。
Person *p1 = [Person person]; //此处的Person person的作用相当于Person new
有参数:
@property int age;
+ (instancetype)personWithAge:(int)age;
+ (instancetype)personWithAge:(int)age
{
Person *p = [[self alloc] init]; //此处的self不要使用Person
p.age = age;
return p;
}
在主函数中就可以直接创建对象使用
Person *p2 = [Person personWithAge:10];
二、扩展
给一个类提供自定义构造方法和自定义工厂方法,都是用于快速创建一个对象(初始化对象),本身苹果底层的使用规则也是如此,例如:
1 NSString *p = [[NSString alloc] init]; 2 NSString *p = [NSString string]; 3 NSString *p1 = [[NSString alloc] initWithString:(nonnull NSString *)]; 4 NSString *p1 = [NSString stringWithString:(nonnull NSString *)]; 5 6 NSArray *a = [[NSArray alloc] init]; 7 NSArray *a = [NSArray array]; 8 NSArray *a1 = [[NSArray alloc] initWithObject:(nonnull id)]; 9 NSArray *a1 = [NSArray arrayWithObject:(nonnull id)];
标签:
原文地址:http://www.cnblogs.com/hissia/p/5433582.html