• 周六. 7 月 27th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

打印函数(NSLog和NSLogv)

admin

11 月 28, 2021

Foundation框架提供了两个记录日志函数,NSLog和NSLogv,使用它们可以将输出结果记录到系统日志设备中。

NSLog函数使用很多,本文主要介绍下NSLogv的使用。

与NSLog函数类似,NSLogv也会将错误消息记录到系统日志设备中,它与NSLog函数的区别是它支持变量参数列表

比如下面代码的实现,就会发现使用NSLog函数是做不到“打印变量参数列表”

#import <Foundation/Foundation.h>

void printArgs(int numArgs, ...);

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        
        printArgs(3, @"Mery", @"Hati", @"Ganta");
        
    }
    return 0;
}

void printArgs(int numArgs, ...) {
    va_list args;
    va_start(args, numArgs);
    va_end(args);
    NSMutableString *format = [[NSMutableString alloc] init];
    [format appendString:@"Arguments:"];
    for (int ii = 0; ii < numArgs -1; ii++) {
        [format appendString:@"%@, "];
    }
    if (numArgs > 1) {
        [format appendString:@"%@"];
    }
    NSLogv(format, args);
}

自定义的 printArgs 函数中,第二个参数是一个变量列表(由变量参数标记…设置),表示的是可以接受任意个数的参数。

上面程序运行结果如下:

发表回复