自定义NSLog

**新建 ExtendNSLog 类,继承自 NSObject

**在 ExtendNSLog.h 中删除默认代码 添加以下函数声明:

void ExtendNSLog(const char *file, int lineNumber, const char *functionName, NSString *format, ...);

**在 ExtendNSLog.m 中删除默认代码 添加以下代码实现:

void ExtendNSLog(const char *file, int lineNumber, const char *functionName, NSString *format, ...) {

    va_list ap;

    va_start(ap, format);

    if (![format hasSuffix: @"\n"]) {
        format = [format stringByAppendingString: @"\n"];
    }

    NSString *body = [[NSString alloc] initWithFormat:format arguments:ap];

    va_end(ap);

    NSString *fileName = [[NSString stringWithUTF8String:file] lastPathComponent];
    fprintf(stderr, "(%s) (%s:%d) %s",
            functionName,
            [fileName UTF8String],
            lineNumber,
            [body UTF8String]);
}

 

**新建 PrefixHeader.pch 文件 输入以下内容:

#ifdef __OBJC__

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>

#import "ExtendNSLog.h"

#ifdef DEBUG
#define NSLog(args...) ExtendNSLog(__FILE__, __LINE__, __PRETTY_FUNCTION__, args);
#else
#define NSLog(x...)
#endif

#endif

 

**选择 项目->TARGETS->[ProjectName]->Build Settings

在搜索框输入 prefix header 在 Prefix Header中输入 [ProjectName]/PrefixHeader.pch

**运行测试,修改运行模式

搞定收工!

转自:http://liufan321.github.io

posted @ 2015-10-11 16:20  杨智帆  阅读(356)  评论(0编辑  收藏  举报