NSLog和NSLogv之间的区别

时间:2016-12-05 06:19:11

标签: objective-c swift nslog

有谁可以解释NSLog和NSLogv之间的区别?我知道NSLog用于在控制台中打印数据。但是什么是NSLogv

2 个答案:

答案 0 :(得分:2)

一般来说,后缀v表示函数将va_list作为参数,而不是可变参数列表。

NSLogNSLogv的情况如此:

void NSLog(NSString *format, ...);

void NSLogv(NSString *format, va_list args);

这在某些特定情况下非常有用,在这些情况下,您需要“包装”一个采用可变参数的函数。如果你需要它,你就会知道。否则,你可以放心地忽略它。

答案 1 :(得分:1)

NSLogvaradic function,这意味着它需要可变数量的参数。但有时,程序员会想要在调用NSLog之前实现自己的varadic包装函数,该函数会执行其他操作。

如果NSLog是唯一的函数,那是不可能的,因为你不能将一组varadic参数(又名va_list)传递给另一个varadic函数。

这就是NSLogvNSLog分开存在的原因,NSLogv只是一个接受可变数量参数并将它们传递给{{1}}的包装器。