天天看點

iOS開發學習心得(1)----關于Objectvie-C

最近由于項目需要,開始接觸iOS的開發,在此記錄一下,友善以後檢視。

說到iOS,不得不提的就是Objectvie-C,顧名思義,它是在C的基礎上擴充的一門面向對象的語言。

在Objective-C中,類被生命為 Interface 類的生命被包含在@Interface.[email protected]之中,而不是C++中的 class xxx{...}; 。類的實作包含在 @[email protected]之中。

一下是一段 Objective-C 與 C++ 的文法對照:

Objective-C:

@interface MyObject : NSObject {
    int memberVar1; // 實體變數
    id  memberVar2;
}
+(return_type) class_method;            // 類方法
 
-(return_type) instance_method1;        // 實體方法
-(return_type) instance_method2: (int) p1;
-(return_type) instance_method3: (int) p1 andPar: (int) p2;
@end
           

Objective-C:的實作:

@implementation MyObject
 
+(return_type) class_method {
    .... //method implementation
}
-(return_type) instance_method1 {
     ....
}
-(return_type) instance_method2: (int) p1 {
    ....
}
-(return_type) instance_method3: (int) p1 andPar: (int) p2 {
    ....
}
@end
           

C++:

class MyObject : public NSObject {
    int memberVar1;  // 實體變數
    void * memberVar2;
 
  public:
    static return_type class_method(); // 類方法
 
    return_type instance_method1();    // 實體方法
    return_type instance_method2( int p1 );
    return_type instance_method3( int p1, int p2 );
}
           

在Objective-C 類中方法前的 +(加号) 表示類方法,類似于C++中的 static 方法。-(減号) 表示實體方法。

方法的參數也不像其他語言中的聲明在括号内, 而是以 :(冒号)代表參數傳遞。方法的調用方式也跟C++中有很大的差別。

Objective-C中,調用一個方法 文法如下:

[obj method: argument];
           

C++:

obj->method(argument);
           

筆者功力有限,這裡隻是及其簡單的介紹了一下Objective-C,由于筆者對C++比較熟悉,在學習Objective-C中,經常拿它跟C++進行比較,這樣雖然可以較快的上手,但是Objective-C中還是有很多與C++中不同的特性,是以想要深入了解Objective-C,還是需要較系統的學習Objectvie-C。