零零乙 2009-06-09 09:44 采纳率: 33.3%
浏览 523
已采纳

如何打印出方法名称和行号,并有条件地禁用 NSLog?

I'm doing a presentation on debugging in Xcode and would like to get more information on using NSLog efficiently.

In particular, I have two questions:

  • is there a way to easily NSLog the current method's name / line number?
  • is there a way to "disable" all NSLogs easily before compiling for release code?

转载于:https://stackoverflow.com/questions/969130/how-to-print-out-the-method-name-and-line-number-and-conditionally-disable-nslog

  • 写回答

11条回答 默认 最新

  • Didn"t forge 2009-06-09 10:37
    关注

    Here are some useful macros around NSLog I use a lot:

    #ifdef DEBUG
    #   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
    #else
    #   define DLog(...)
    #endif
    
    // ALog always displays output regardless of the DEBUG setting
    #define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
    

    The DLog macro is used to only output when the DEBUG variable is set (-DDEBUG in the projects's C flags for the debug confirguration).

    ALog will always output text (like the regular NSLog).

    The output (e.g. ALog(@"Hello world") ) will look like this:

    -[LibraryController awakeFromNib] [Line 364] Hello world
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?