不定個数パラメータの関数書き方
1715 ワード
卵が痛くて、友达がこのように书くので、私も研究を手伝いました!
- (void)testArguments:(NSString *)argument,...
{
NSMutableArray *array = [NSMutableArrayarray];
DLog(@"arguments: %@",argument);
va_list list;
va_start(list, argument);
NSString *string = argument;
while(string){
if(![string isKindOfClass:[NSStringclass]){//ループから飛び出すため
break;
}
CFArrayAppendValue((CFMutableArrayRef)array, string);//配列にパラメータを入れる
string = va_arg(list, NSString*);//次のパラメータを取得
}
va_end(list);
for(id obj in array){
Dlog(@「印刷:%@」,obj);
}
}
[selftestArguments:@「いいね」@「いいね」@「hello」@「good」,nil];
または
- (void)testArguments:(NSString *)argument,...
{
NSMutableArray *array = [NSMutableArrayarray];
DLog(@"arguments: %@",argument);
va_list list;
va_start(list, argument);
NSString *string = argument;
while(string){
if(![string isKindOfClass:[NSStringclass]){//ループから飛び出すため
break;
}
CFArrayAppendValue((CFMutableArrayRef)array, string);//配列にパラメータを入れる
string = va_arg(list, NSString*);//次のパラメータを取得
}
va_end(list);
for(id obj in array){
Dlog(@「印刷:%@」,obj);
}
}
[selftestArguments:@「いいね」@「いいね」@「hello」@「good」,nil];
または
//[ViewController writeWithFormat:@"1", @"2", @"3", nil];
+ (
void
)__methodName__:(NSObject*)string, ... {
// parms must be end with nil
va_list args;
va_start(args, string);
if
(string) {
NSLog(
@"Do something with First: %@"
, string);
NSObject
*other;
while
((other = va_arg(args,
NSObject
*))) {
NSLog(
@"Do something with other: %@"
, other);
}
}
va_end(args);
}