如何从Objective-C宏调用变量方法?
我创建了变量法的va_列表版本:如何从Objective-C宏调用变量方法?,objective-c,macros,variadic-functions,Objective C,Macros,Variadic Functions,我创建了变量法的va_列表版本: +(void)myFunc:(NSString *)message args:(va_list)args; 并创建了调用上述函数的宏TESTLOG #define TESTLOG(x,...) [MyExample myFunc:(x), ##__VA_ARGS__] 问题是,当我尝试调用TESTLOG宏时,出现了一个错误: TESTLOG("test"); TESTLOG(@"test",@"test1"); 期望表达式 我怎样才能解决这个问题?我试图用
+(void)myFunc:(NSString *)message args:(va_list)args;
并创建了调用上述函数的宏TESTLOG
#define TESTLOG(x,...) [MyExample myFunc:(x), ##__VA_ARGS__]
问题是,当我尝试调用TESTLOG
宏时,出现了一个错误:
TESTLOG("test");
TESTLOG(@"test",@"test1");
期望表达式
我怎样才能解决这个问题?我试图用…
替换args:(va_list)args
,但在我的情况下,我需要使用va_list和宏
我认为我的问题在于宏中的定义。不能将
\uu VA\u ARGS\uu
宏与VA\u列表
参数一起使用。您的Objective-C方法需要定义为:
+ (void)myFunc:(NSString *)message, ... ;
然后,您的宏可以是:
#define TESTLOG(x,...) [MyExample myFunc:(x), __VA_ARGS__]
你是对的,但我的情况更复杂。。。在这种情况下,我可以从objective-c代码运行这个函数,这是可以的,但是swift呢?如何从swift代码调用此函数(MyExample.myFunc)?用变量法?我没有成功地从swift代码中调用变量方法,xcode无法识别函数(MyExample.myFunc)。你能解释一下如何声明调用myFunc的swift函数吗?这是一个完全不同的问题。你应该通过接受答案来结束这个问题,然后发布一个新问题,询问如何从Swift调用客观C变量方法。