iOS方法和例項變數

2021-07-04 03:19:56 字數 1426 閱讀 7792

類的方法和c語言的函式不同,其在邏輯上要麼屬於類,要麼屬於物件。即所有的方法必須使用[類 方法](「+」號方法)或者[物件 方法](『-』號方法)的形式來呼叫。

如果在定義方法時,最後乙個引數名後面增加逗號和三點(,...),即表明該方法可以接受多個引數值。

#import @inte***ce person : nsobject

@property (nonatomic,retain)nsstring * name;

@property (nonatomic,assign)int age ;

-(void)test:(nsstring * ) name ,...; //定義行參個數可變的方法

//-(void)printinfo;

//+(void)personinfo ;

@end

為了在程式中獲取可變的行參,需要使用以下關鍵字。

va_list:這是乙個型別,用於定義指向可變引數列表的指標變數。

va_start:這是乙個函式,該函式指定開始處理可變形參的列表,並讓指標變數指向可變行參列表的第乙個引數。

va_end:結束處理可變形參,釋放指標變數。

va_arg:該函式返回獲取當前指標指向的引數值,並移動到下乙個引數。

#import "person.h"

@implementation person

-(void)test:(nsstring *)name, ...

//釋放arglist指標,結束提取

va_end(arglist);

}}@end

乙個方法中只能包含乙個個數可變的形參,且在形參列表的最後。

oc的成員變數都是例項變數,並不支援真正的類變數。系統會為例項變數初始化。

@inte***ce person : nsobject
例項變數分為  public(公有的,可以在類的外部和內部操作) protected(預設,只能在該類和其子類內操作) privated(私有的,只能在該類內訪問)。

單例:如果乙個類始終只能建立乙個例項,則這個類被稱為單例類。實現如下:

#import "person.h"

static id instance = nil;

@implementation person

+(id)instance

return instance ;

}@end

#import @inte***ce person : nsobject

+(id)instance;

@end

定義乙個static全域性變數,並通過該全域性變數快取已經有的例項,然後實現instance類方法,該方法控制類最多隻產生乙個例項。

例項變數和類變數 類方法和例項方法

類體中包括成員變數和區域性變數,而成員變數又可以細分為例項變數和類變數,在宣告成員變數的時候,用static給予修飾的稱作類變數,否則稱作例項變數。類變數也稱為static變數,靜態變數 那麼,類變數和例項變數有什麼區別呢?我們知道,乙個類通過使用new運算子可以建立多個不同的物件,這些物件將被分配...

iOS 例項變數

不需要 synthesize語句 在某個版本之前,對應 property,在implementation中需要寫對應的 synthesize語句,來合成access方法,不過在一次公升級之後,現在已經不再需要了 不需要重複宣告例項變數 實際上,property宣告的是屬性,並不是例項變數。但是編譯器...

iOS入門(十六)例項變數可見度和方法

例項變數可見度和方法 public private protected 可見度預設為 protected 在 main 檔案中通過賦值和取值對不在可見度範圍內的特徵進行設定和讀取 方法分為 類方法 類方法中不能使用例項變數 例項方法 方法宣告 方法型別識別符號 返回型別 引數形容詞 引數型別 引數名...