1. 程式人生 > >objective-c語言學習筆記

objective-c語言學習筆記

1、c語言風格函式申明

int add(int a, int b);

    oc語言為

(int)add:(int)a par2:(int) b;

函式名add也是第一個引數名稱,第二個引數名稱是par2,這樣處理是為了實現函式的多型性。

 

 

 

2方法的定義和引用:
Object-C中的方法同其它面嚮物件語言一樣,分兩種方法:例項方法(-)和類方法(+)(靜態方法)。
例項方法需要通過類的例項去呼叫,而靜態方法可直接通過類名去呼叫。

1 - (void)insertObject:(id)anObject atIndex:(NSUInter)index;

上述程式碼中定義了一個名為"insertObject:atIndex"的例項方法,該方法無返回值,並定義了2個形參,型別分別為id和NSUInter。

 

類方法,也稱靜態方法,指的是用static關鍵字修飾的方法此方法屬類本身的方法,不屬於類的某一個例項(物件)。類方法中不可直接使用例項變數。其呼叫方式有三種:可直接呼叫、類名.方法名、物件名.方法名。例項方法指的是不用static關鍵字修飾的方法每個例項物件都有自身的例項方法,互相獨立,不共享一個。其呼叫方式只能是物件名.方法名。 
用修飾符static宣告的方法為靜態方法,不用修飾符static宣告的方法為例項方法

不管類生成或未生成物件,類的靜態方法都可以被使用,使用格式為:類名.靜態方法名。靜態方法只能使用該靜態方法所在類的靜態資料成員和靜態方法。這是因為使用靜態方法時,該靜態方法所在類可能還沒有物件,即使有物件,由於用類名.靜態方法名方式呼叫靜態方法,靜態方法沒有this指標來存放物件的地址,無法判定應訪問哪個物件的資料成員。在類建立物件後,例項方法才能被使用,使用格式為:物件名.例項方法名。例項方法可以使用該方法所在類的所有靜態成員和例項成員。

 

在定義一個方法時,也可以不指定引數名,如:

1 // 宣告一個沒有引數名的方法
2 -(int) set: (int) n: (int) d;
3 
4 // 方法呼叫
5 [object set : 4 : 5];

方法的呼叫:
在Object-C中,呼叫一個方法叫做傳送訊息,方法呼叫語句定義在中括號"[]"中:

1 [myArray insertObject:anObject atIndex:0];

為了避免生成大量的臨時變數,Object-C允許巢狀呼叫方法,使一個方法的返回值當作另一個方法的引數,如:

1 [[myAppObject theArray] inserObject:[myAppObject objectToInsert] atIndex:0];