贵国是否对安全记录仪进行了独特或特别的用途,以便进行清点。
使用了何种特殊用途的安保记录仪?
原标题:
最佳回答
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!
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding