類方法
類方法,也稱靜態(tài)方法或者工廠方法梅桩,以+開頭壹粟,指的是用static關(guān)鍵字修飾的方法。類方法屬于整個類宿百,在項(xiàng)目中工具類的封裝多用工廠方法調(diào)用趁仙,調(diào)用格式[類名 類方法];
舉個例子,如果多個界面都需要從沙盒中取出某個數(shù)據(jù)垦页,就可以把這個方法進(jìn)行封裝
新建一個類雀费,繼承于NSObject,類名為GetHead痊焊。
在GetHead.h中聲明一個類方法+(NSString *)getHeadString;//這里的getHeadString就是類方法名盏袄。(NSString *)就是這個類方法返回的值的類型。
在GetHead.m中實(shí)現(xiàn)聲明的方法:
+(NSString *)getHeadString
{
NSString *documentPathStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *strPath = [documentPathStr stringByAppendingPathComponent:@"/obj.txt"];
NSString *newStr = [NSString stringWithContentsOfFile:strPath encoding:NSUTF8StringEncoding error:nil];
return newStr;
}
ViewController中調(diào)用這個方法:NSString *str = [GetHead getHeadString];
類方法也可以同樣傳參數(shù)進(jìn)去薄啥,比如進(jìn)行網(wǎng)絡(luò)請求時候辕羽,可以把網(wǎng)絡(luò)請求封裝,傳入不同的請求體即可垄惧。
實(shí)例方法
實(shí)例方法指的是不用static關(guān)鍵字修飾的方法刁愿,以-開頭,它屬于類的某一個或某幾個實(shí)例對象赘艳,即類對象必須實(shí)例化后才可以使用的方法酌毡,調(diào)用方式[對象名 對象方法];
例:有一個Person類,繼承于NSObject蕾管,在.h文件中聲明一個方法-(void)say;.
在.m文件中實(shí)現(xiàn)這個方法-(void)say{NSLog(@"哈哈哈");}
ViewController要想調(diào)用這個方法:
Person *xm = [[Person alloc]init];
[xm say];
構(gòu)造方法
什么是構(gòu)造方法:初始化對象的方法枷踏。一般情況下,在 OC 當(dāng)中創(chuàng)建1個對象分為兩部分(new 做的事):alloc:分配內(nèi)存空間,init :初始化對象掰曾。
構(gòu)造方法分為系統(tǒng)自帶和自定義構(gòu)造方法旭蠕。
(1)如果是系統(tǒng)自帶的構(gòu)造方法,需要重寫父類中自帶的構(gòu)造方法 比如init
(2)如果是自定義構(gòu)造方法:屬于對象方法那么以-號開頭,返回值一般為id或者instancetype類型掏熬,方法名一般以init開頭
系統(tǒng)構(gòu)造方法書寫格式:
- (instancetype)init
{
self = [super init];
if (self) {
}
return self;
}
自定義構(gòu)造方法:
@property int age;
@property NSString *name;
//自定義構(gòu)造方法 在初始化的時候?yàn)閷傩?年齡"和"姓名"賦值
- (instancetype)initWithAge:(int)age andName:(NSString *)name;
實(shí)現(xiàn)
// 實(shí)現(xiàn)自定義構(gòu)造函數(shù) 在初始化的時候?yàn)閷傩再x值
- (id)initWithAge:(int)age andName:(NSString *)name
{
if (self = [super init]) {
_age = age;
_name = name;
}
return self;
}
文章是為了留下記錄佑稠,以便鞏固基礎(chǔ)知識,日后會繼續(xù)完善旗芬,如果有不好的地方舌胶,敬請指教。