zoukankan      html  css  js  c++  java
  • 打印函数(NSLog和NSLogv)

    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 函数中,第二个参数是一个变量列表(由变量参数标记...设置),表示的是可以接受任意个数的参数。

    上面程序运行结果如下:

  • 相关阅读:
    P2761 软件补丁问题
    CF1335F Robots on a Grid
    [bzoj2088]P3505 [POI2010]TEL-Teleportation
    CF1335E Three Blocks Palindrome
    P3831 [SHOI2012]回家的路
    P4568 [JLOI2011]飞行路线(分层图)
    P4774 [NOI2018]屠龙勇士
    P2480 [SDOI2010]古代猪文
    CF #632 (Div. 2) 对应题号CF1333
    BSGS 和扩展
  • 原文地址:https://www.cnblogs.com/cchHers/p/15097844.html
Copyright © 2011-2022 走看看