English 中文(简体)
使用了何种特殊用途的安保记录仪?
原标题:
  • 时间:2009-05-23 12:42:50
  •  标签:

贵国是否对安全记录仪进行了独特或特别的用途,以便进行清点。

最佳回答

I like to use this format for debugging.

NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )

当然,为了便于使用,你希望用自己的方法或功能来总结这一点。 我使用先处理器,而且只能让它供我自己使用,而特殊建筑则是我派去做陶器的。 这一点在我对。 问题。

#define DEBUG_MODE

#ifdef DEBUG_MODE
    #define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
    #define DebugLog( s, ... ) 
#endif

因此,<代码>Debug Carlo仅如NS Carlo,但显示其名称和编号:

2009-05-23 17:23:40.920 myproject[92523:10b] <AppCon.m:(8)> My debug message...
问题回答

我使用一些带有国家抽样调查记录仪的宏观方法,迅速分解可可编码NS%/code>和NSRect。 结构:

#define LogPoint(POINT) CMLog(@"%s: (%0.0f, %0.0f)",
                              #POINT, POINT.x, POINT.y)

#define LogSize(SIZE) CMLog(@"%s: %0.0f x %0.0f",
                            #SIZE, SIZE.width, SIZE.height)

#define LogRect(RECT) CMLog(@"%s: (%0.0f, %0.0f) %0.0f x %0.0f",
                            #RECT, RECT.origin.x, RECT.origin.y,
                            RECT.size.width, RECT.size.height)

可通过以下方式使用:

LogPoint(somePoint);
LogSize(someSize);
LogRect(someRect);

这些产出如下:

somePoint: (100, 200)
someSize: 12 x 440
someRect: (120, 240) 326 x 74
NSLog(@"%s", __func__);

印刷现行方法签名或功能名称。

这不是国家安全监督记录仪的特征,但是,它用于国家安全记录仪的手法:你可以使用百分比的“所在地点”物体,其描述将显示:

NSLog (@"The object is %@", someKindOfObjectWhichYouWantToDisplay);

这样,你就能够仓促地看到你返回的物体。 这样做的办法是向“描述”挑选人发送一个物体,这当然可以在你自己的物体上实施。

这里,允许你 in开一些 de木,使事情更容易读:

// MyDebugStuff.h:
void MyLog_Indent();
void MyLog_Outdent();
void MyLog(NSString * format, ...);

// MyDebugStuff.m:
int logIndentLevel = 0;

void MyLog_Indent()  { logIndentLevel++; }
void MyLog_Outdent() { if (logIndentLevel > 0) { logIndentLevel--; } }

void MyLog(NSString * format, ...)
{
    va_list args;
    va_start(args, format);

    NSString * indentString = [[NSString stringWithString:@""]
                     stringByPaddingToLength:(2*LogIndentLevel)
                                  withString:@" "
                             startingAtIndex:0];

    NSLogv([NSString stringWithFormat:@"%@%@", indentString, format], args);

    va_end(args);
}

可以这样作:

MyLog(@"Hello, world");
MyLog_Indent();
MyLog(@"Step 1");
MyLog(@"Step 2");
MyLog_Indent();
MyLog(@"Step 2a");
MyLog(@"Step 2b");
MyLog_Outdent();
MyLog(@"Step 3");
MyLog_Outdent();
MyLog(@"Goodbye, cruel world!");

生产:

Hello, world
  Step 1
  Step 2
    Step 2a
    Step 2b
  Step 3
Goodbye, cruel world!




相关问题