在我的应用程序中,我正在使用
#if DEBUG
Console.WriteLine(....)
#endif
在很多地方。这是一个临时措施,并且很好,但是我想知道我应该如何正确地做到这一点。有人简单地向我提到了NSLog,但我找不到任何Monotouch和NSLog信息,而且我不确定这些信息是如何可检索的,以便我可以看到发生了什么。
最后,如果有人使用任何特定策略进行崩溃扣除和堆栈追踪抓取,我会全力以赴。
答案 0 :(得分:5)
你应该利用C#的[条件]支持语言。
您可以将此属性添加到方法中,如下所示:
class Util {
[Conditional ("DEBUG")]
void Log (string msg)
{
Console.WriteLine (msg);
}
}
这可以让你编写如下代码:
Util.Log ("Starting");
DoSomething ();
Util.Log ("Ending");
如果定义了符号DEBUG,则上面的代码将编译三行,但如果未定义符号,则编译器将仅为DoSomething生成代码。
这使您可以将调试代码保存在程序中,并通过使用编译器定义来打开/关闭它。
然后将DEBUG添加为DEBUG配置文件的一个定义。相同的技术可以应用于其他配置构建,您可以使用上面的模拟器与设备或调试与AppStore与AdHoc
答案 1 :(得分:3)