2011-11-10 21 views
0

複数のNSStringを引数としてinitメソッドを作成する必要があります。複数のNSStringを引数として持つObjective Cメソッド

次のようになります。 ' - (id)initWithSomething:(NSString *)things、nil;'

文字列の数を認識して配列に書き込む方法はありますか?何をしたい

よろしく

+0

をあなたは、可変個の引数( 'NSString'sの任意の数の関数を呼び出すことが可能である)か、単に複数の引数は(のみ呼び出すことができることしたいですかそれはあらかじめ定義された数のNSString'sで)? – shookster

答えて

0

基本Objective-Cの構文は次のとおりです。

-(type)methodNameTakesInput:(type)param1 andMoreInput:(type)param2 

ですから、

-(id)initWithString:(NSString *)str andOtherThing:(NSObject *)obj 

代わりを行うことができ、あなたはちょうどあなたがしたい配列渡すことができます。

-(id)initWithStuff:(NSArray *)arrayOfStuff 

をし、通常どおりに配列を入力してください:

NSArray *arrayOfStuff = [NSArray arrayWithObjects:@"Strings!", @"More strings!", nil]; 
4

は、可変長引数メソッドを使用します

//Interface 
-(id) initWithSomething:(NSString*) arg1, ...; 
//Implementation 
-(id) initWithSomething:(NSString*) arg1, ... { 
    va_list args; 
    va_start(args, firstObject); 
    id obj; 
    for (obj = firstObject; obj != nil; obj = va_arg(args, id)) 
     //Do stuff with each object. 
    va_end(args); 
} 
関連する問題