所以我想做的是,每当我触摸一个按钮时,它都会调用一个函数,其中包含一个 char 和一些可变数量的参数(在本例中,两个 int 都值 24)。
- (IBAction)buttonPressed:(id)sender {
number = 24;
printf_to_debug("some text %d %d ",number, number);
//printf(" %d %d ",number, number);
}
然而,当我调用该函数时,它似乎总是将我的整数更改为一些我不明白的大数字。
void printf_to_debug (char* fmt, ...) {
va_list args;
va_start( args, fmt );
printf(fmt, args);
charString = [NSString stringWithUTF8String: fmt];
charString = [NSString stringWithFormat:charString, args];
debugTextString = [NSString stringWithFormat:@"%@\r%@",charString, debugTextString];
va_end( args );
}
有人看到我的代码有问题吗?
最佳答案
您必须使用 vprintf()
来打印 va_list
给出的参数:
va_list args;
va_start (args, fmt );
vprintf(fmt, args);
va_end( args );
对应的NSString
方法是initWithFormat:arguments:
:
NSString *s = [[NSString alloc] initWithFormat:@(fmt) arguments:args];
关于ios - 使用 char 和可变数量的参数调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24639466/