ios - 使用 char 和可变数量的参数调用函数

标签 ios objective-c

所以我想做的是,每当我触摸一个按钮时,它都会调用一个函数,其中包含一个 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/

相关文章:

ios - 在 iPad Pro 上放大的 iPad Air App

ios - 使用 NSStream 进行 Objective-C 套接字编程

iphone - 在 UIView 周围创建光晕

ios - 带 RESTKIT 的 ESPN iOS API

ios - 如何将自定义值插入现有的 Plist 数组数据?

ios - 如何在头文件中声明公共(public) NS_Enum 属性

ios - 如何在 Swift 中选择随机颜色

iphone - 目前使用的每个 iOS 版本有多少台?

iphone - 在横向模式下报告不正确的边界

objective-c - 如何更改导航栏分隔线的颜色