OC學習簡單總結
方法是類的行為,寫在接口和實現兩個文件中。在接口部分聲明方法,在實現部分實現方法。
1、類方法與實例方法
Objective-C中的類可以聲明兩種類型的方法:實例方法和類方法。實例方法就是一個方法,它在類的一個具體實例的範圍內執行。也就是說,在你調用一個實例方法前,你必須首先創建類的一個實例。而類方法,比較起來,也就是說,不需要你創建一個實例。
+表示類方法,就是類調用方法,不依賴與任何對象的方法,類似於c語言的static關鍵字 static函數。-表示是實例(對象)方法,只能是對象可調用,依賴與任何對象的方法。
總結一下幾點:
(1)類(static)方法(便利構造器)
a. 類方法的調用
[類名稱 類方法名稱];
這裏需要註意:
1、類方法可以調用類方法。
2、類方法不可以調用實例方法,但是類方法可以通過創建對象來訪問實例方法。
3、類方法不可以使用實例變量。類方法可以使用self,因為self不是實例變量。
4、類方法作為消息,可以被發送到類或者對象裏面去(實際上,就是可以通過類或者對象調用類方法的意思)。
(2)實例方法
a.實例方法的調用
首先需要實例化該類
例如:Human *man = [Human alloc] init];
[類的實例 實例方法名稱];
例如:[man showSex];
註意:此處實例化該類時,調用了該類的構造函數init,並且該類的構造函數調用[super init]的返回值不等於該類的self。
定義子類的實例
Woman *wife = [Woman alloc] init];
此處實例化該類時,調用了該類的構造函數init,並且該類的構造函數調用[super init]的返回值 等於該類的self。
2、單例模式
Singleton模式,即單例模式。顧名思義,主要用於做應用程序的資源共享控制。實質為,單例是在程序聲明周期裏有且僅有被實例化過一次的類。為確保實例化的唯一,利用類的類(static)方法來生成和訪問對象。至此,我們可以在程序中任何地方訪問類的單例對象,因為只實例化唯一的一次,所以,並不用 alloc、init、autorelease初始化方法。
單例設計模式的要點:
(1) 某個類只能有一個實例。
(2)他必須自行創建這個對象
(3)必須自行向整個系統提供這個實例;
(4)這個方法必須是一個靜態類;
.m文件代碼(記住)
@implementation Singleton
static Singleton *st;
+(Singleton*) instance{//可用id代替返回可用的指針對象 instance是方法名
//靜態變量,生命周期是整個程序,在下一次該函數調用時仍可使用 。? if(st==nil ) {//指針為空就創建? st = [[Singleton alloc] init];
//指針st指向單例模式 Singleton
}
return st;//不是空就繼續使用
}
@end
註意:所謂單例,即我們自己創建一個單例類,該類只能生成唯一的對象,為了防止該對象被復制(copy)或者retain 和 release 等操作,我們必須在所創建的單例的實現文件( .m 文件)中將父類的這些方法給覆蓋,該目的是為了保證單例模式的一個嚴謹性。
轉自:http://blog.sina.com.cn/s/blog_a1d242c90102voti.html
OC學習簡單總結