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

    上面程序运行结果如下:

  • 相关阅读:
    [JZOJ 5788] 餐馆
    [JZOJ 5778] 没有硝烟的战争
    problems_scala
    好迷茫,好迷茫啊
    公布下我的数据库操作层
    关于数据库大并发量(未完成)
    关于http协议头
    管理心得体会
    数据库表分区
    公共的Json操作类
  • 原文地址:https://www.cnblogs.com/cchHers/p/15097844.html
Copyright © 2011-2022 走看看