Ios exc_bad_指令exc_i386_invop当我将va_列表发送到其他函数时
我正在为iphone开发。 我有日志功能,这个很好用Ios exc_bad_指令exc_i386_invop当我将va_列表发送到其他函数时,ios,objective-c,variadic-functions,Ios,Objective C,Variadic Functions,我正在为iphone开发。 我有日志功能,这个很好用 void _log_p(NSString* format, ...) { va_list argList; va_start(argList, format); NSString* text = [[NSString alloc] initWithFormat:format arguments:argList]; va_end(argList); } 但当我尝试将argList发送到另一个函数时,我得到了ex
void _log_p(NSString* format, ...)
{
va_list argList;
va_start(argList, format);
NSString* text = [[NSString alloc] initWithFormat:format arguments:argList];
va_end(argList);
}
但当我尝试将argList发送到另一个函数时,我得到了exc_bad_指令exc_i386_invop
void _log(LogLevel level, NSString* format,...)
{
va_list argList;
va_start(argList, format);
NSString* text = [[NSString alloc] initWithFormat:format arguments:argList];
va_end(argList);
}
void _log_p(NSString* format, ...)
{
va_list argList;
va_start(argList, format);
_log(LogLevelPublic, format, argList);
va_end(argList);
}
在行NSString*text=[[NSString alloc]initWithFormat:format arguments:argList]上
我做错了什么?一般来说,不可能转发可变参数。请参阅:我不是目标C方面的专家,但是:您不能将
va_列表
转发给另一个通过…
获取可变参数的函数。您需要接受va_列表
的函数的不同版本。例如printf
与vprintf