Objective-C與C style語言的簡單類比

1. 關於Objc中函數調用類比java

[_lblHelloWorld setHidden:![_lblHelloWorld isHidden]];objective-c

類比爲: _lblHelloWorld.setHidden(!(_lblHelloWorld.isHidden()));函數

Tip: objc中的boolean值爲YES和NO,而不是True or False指針

 

 -(void) helloWorld:(BOOL)isHelloWorld{}對象

類比爲: public void helloWorld(bool isHelloworld){}繼承

Tip: 前面帶有減號(-)的方法爲實例方法,必須使用類的實例才能夠調用。對應的有+號,表明類的靜態方法,不須要實例化便可調用接口

 

2. 消息:向對象發送消息。ip

消息是iOS的運行環境特有的幾隻,和C++和Java上類相似,但機制上有很大的差異。get

[object message:param1 withParameter:param2]string

NSString *string;

string = [[NSString alloc] initWithString:@「Hello」];

類比爲:

    object.message()

    object.message(param1,param2)

    string *str;

    string = new string(「Hello」);

 

3. import方法

#import 「Class.h」

#import <Class.h>

#import <director/Class.h>

和C下的include方法類似

 

4. Property 和 Synthesize

Property定義:@property聲明用於自動建立property屬性變量的getter和setter

Synthesize定義:@Synthesize聲明實現了property屬性變量的geetter和setter

例如:

在interface: @property dataType variableName

在implementation: Synthesize variableName

 

5. 頭文件中的方法

 -(returnType)method

 -(returnType)method:(dataType)param1

 -(returnType)method:(dataType)param1 withParam:(dataType)param2

類比爲:

 returnType method()

 returnType method(param1)

 retrunType method(param1,param2)

 

6. 關於self:指向本身的指針

[self method];

類比爲: self.method();

 

7. 繼承關係和接口實現

 ClassA:PraentA

 ClassA:PraentA<Protocol>

 ClassA <Protocol>

類比爲:    

    ClassA extends ParentA

    ClassA extends ParentA implements interface

    ClassA implements interface

 

8. 空指針

id obj = nil;

NSString *hello = nil;

nil至關於java裏的null

 

9.id:objective-c中的id和C++裏的(void*)相似

相關文章
相關標籤/搜索