码迷,mamicode.com
首页 > 其他好文 > 详细

OC基础(八)类工厂方法

时间:2016-04-26 07:08:28      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

一:基本用法

类工厂方法作用:提高编码效率,快速创建对象的方法

规范: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)];

 

OC基础(八)类工厂方法

标签:

原文地址:http://www.cnblogs.com/hissia/p/5433582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!