pragma mark 類工廠方法基本概念
pragma mark 概念
/**
* 自定義工廠方法
什么是工廠方法(快速創(chuàng)建方法)
類公共方法 是一種 用于分配山橄、初始化實例 并返回一個它自己的實例的類方法, \
類工廠方法很方便,因為他們允許您只使用一個步驟(而不是兩個步驟) 就能創(chuàng)建對象,例如new
*/
pragma mark 代碼
#import <Foundation/Foundation.h>
#pragma mark 類
#import "Person.h"
#pragma mark main函數(shù)
int main(int argc, const char * argv[])
{
// Person *p = [[Person alloc]init];
// Person *p1 = [Person person];
Person *p1 = [Person personWithAge:40];
NSLog(@"age = %i",p1.age);
/*
自定義類工廠方法 是 蘋果的一個規(guī)范, \
一般情況下, 我們會給一個類 提供自定義構(gòu)造方法 和 自定義類工廠方法 用于創(chuàng)建一個對象
*/
#warning 蘋果系統(tǒng)的 構(gòu)造方法(對象方法) 和 類工廠方法(類方法) --- NSString
[[NSString alloc]init];
[NSString string];
[[NSString alloc]initWithString:@"1"];
[NSString stringWithString:@"2"];
// 數(shù)組 NSArray
[[NSArray alloc]init];
[NSArray array];
[NSArray alloc]initWithObjects:@"1", nil];
[NSArray arrayWithObjects:@"2", nil];
return 0;
}
Person.h //人類
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property int age;
#warning 什么是類工廠方法
/*
什么是類工廠方法:
用于 快速創(chuàng)建 對象的方法, 我們稱之為工廠方法
類工廠方法中 主要用于 給對象分配存儲空間和初始化
規(guī)范:
1. 一定是類方法
2. 方法名稱以類名開頭, 首字母小寫
3. 一定有返回值, 返回值是 id / instancetype
*/
+ (instancetype)person;
#warning 類工廠方法帶參數(shù)
+ (instancetype)personWithAge:(int)age;
@end
Person.m
#import "Person.h"
@implementation Person
#warning 類工廠方法
/*
+ (instancetype)person
{
// 1. 分配存儲空間
// 2. 初始化
// 3. 返回對象
Person *p = [Person alloc];
Person *p1 = [p init];
p1.age = 30;
NSLog(@"age = %i",p1.age);
return p1;
}
*/
#warning 類工廠方法 簡化
+ (instancetype)person
{
return [[Person alloc]init];
}
#warning 類工廠方法帶參數(shù)
+ (instancetype)personWithAge:(int)age
{
Person *p = [[Person alloc]init];
p.age = age;
return p;
}
@end
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者