Objective C 如果不为 NULL,使用可变参数列表调用块的方法
Objective C Method to Invoke block if not NULL, with variadic argument list
我正在尝试编写一个方法,该方法首先检查块是否不为 NULL,如果不为 NULL,则使用 variadic
参数调用块。我是新手。
我遇到以下代码的各种错误:
-(void)invokeBlockIfNotNull:(void(^)(void))blockToInvoke withArguments:(id) firstArgument,...
{
if(blockToInvoke != NULL)
{
blockToInvoke(##__VA_ARGS__);
}
}
我遇到了一个做同样事情的宏,但我想看看它在 objective c 方法中的样子。
你不能。您可以编写一个以 va_list 作为参数的块。我会说这是误导,当你保存的只是一个 if 语句。
您的函数无法工作,因为该块被明确声明为没有参数。
即使你让它与一个带有可变参数列表的块一起工作,你也不能将它用于带有一些固定参数列表的块。可变参数列表和固定参数列表不兼容。
我正在尝试编写一个方法,该方法首先检查块是否不为 NULL,如果不为 NULL,则使用 variadic
参数调用块。我是新手。
我遇到以下代码的各种错误:
-(void)invokeBlockIfNotNull:(void(^)(void))blockToInvoke withArguments:(id) firstArgument,...
{
if(blockToInvoke != NULL)
{
blockToInvoke(##__VA_ARGS__);
}
}
我遇到了一个做同样事情的宏,但我想看看它在 objective c 方法中的样子。
你不能。您可以编写一个以 va_list 作为参数的块。我会说这是误导,当你保存的只是一个 if 语句。
您的函数无法工作,因为该块被明确声明为没有参数。
即使你让它与一个带有可变参数列表的块一起工作,你也不能将它用于带有一些固定参数列表的块。可变参数列表和固定参数列表不兼容。