NSLog (Log信息的输出)

概述

NSLog是 cocoa的框架中提供的一个方法

  

NSLog的定义

NSLog定义在NSObjCRuntime.h中

  

NSLog与printf的差异

        1)NSLog传递进去的格式化字符是NSString的对象,而不是char *这种字符串指针
        2)NSLog会自动换行,printf不会自动换行
        3)NSLog会自动输出时间等项目信息,printf不会输出调试信息

  

NSLog格式化输出的问题

        int a= 5;
        float f1 = 2.3f;
        double d1= 3.14;
        char ch ='X';
        
        NSLog(@"%d,%.2f,%.2f,%c",a,f1,d1,ch);
 
        NSLog(@"-->%s",str);//这种%s 不支持
        
        NSString *str1= @"张三丰";
        
        NSLog(@"%@",str1);//OC中用%@输出字符串
 

    注释及 @符号的使用
 
        @"" 这个符号表示将一个C的字符串转化为OC中的字符串对象NSString
        @标识符 OC中大部分的关键字都是以@开头的, 比如 @interface, @implemenetation, @en @class等

  

转载于:https://www.cnblogs.com/developer-wang/p/4499449.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Objective-C 中,可以通过重写 `NSLog` 函数来将输出内容输出到指定文件中。具体操作如下: 1. 定义一个新的 `NSLog` 函数 ```objective-c void MyNSLog(NSString *format, ...) { va_list args; va_start(args, format); NSString *logStr = [[NSString alloc] initWithFormat:format arguments:args]; va_end(args); // 将输出内容写入文件 NSString *filePath = @"文件路径"; NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath]; [fileHandle seekToEndOfFile]; [fileHandle writeData:[logStr dataUsingEncoding:NSUTF8StringEncoding]]; [fileHandle closeFile]; // 将输出内容输出到控制台 NSLog(@"%@", logStr); } ``` 在上面的代码中,首先定义了一个新的 `NSLog` 函数 `MyNSLog`。在这个函数中,首先将输入的格式化字符串格式化成一个字符串,然后将这个字符串写入到指定的文件中。接着,调用系统的 `NSLog` 函数将这个字符串输出到控制台中。 2. 重定义 `NSLog` 函数 ```objective-c #define NSLog(...) MyNSLog(__VA_ARGS__) ``` 在上面的代码中,使用 `#define` 宏定义将 `NSLog` 函数重定义为新的 `MyNSLog` 函数。 使用以上两个步骤,就可以将 `NSLog` 的输出内容同时输出到指定文件和控制台中。需要注意的是,如果文件路径不存在,则需要先创建该文件。另外,如果需要在多个文件中使用这个新的 `NSLog` 函数,可以将上面的代码写在一个公用的头文件中,然后在需要使用的文件中包含该头文件即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值