4
我在傳遞一個可變數目的參數到該函數的一個問題:可變參數函數跳過第一個參數
-(void)addCharacterToScene:(NSString *)name withFrames:(CCSpriteFrame*)frames,... {
va_list args;
va_start(args, frames);
id arg = va_arg(args,CCSpriteFrame*);
int i=1;
while (arg) {
NSString *frame_name = [NSString stringWithFormat:@"%@_%i",name,i];
NSLog(@"%@ \n%@",frame_name, arg);
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFrame:arg name:frame_name];
arg = va_arg(args,CCSpriteFrame*);
i++;
}
va_end(args);
}
的問題是,該函數跳過第一個參數。我的函數調用看起來是這樣的:
[self addCharacterToScene:@"wiz" withFrames:wizardFrame1,wizardFrame2,wizardFrame3,nil];
我可以在第一位置通過一個虛擬對象,並給出了期望的結果,但必須有一個更好的解決方案。謝謝!
有道理。謝謝! – TCool