最近由于項目需要,開始接觸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。