在我的应用程序中,目前我使用
#if DEBUG
Console.WriteLine(....)
#endif
在许多地方。这是一种临时措施,而且很好,但我想知道我应该如何正确地做这件事。有人顺便向我简要地提到了NSLog,但我找不到任何Monotouch和NSLog信息,我不确定如何检索这些信息,以便我可以看到发生了什么。
最后,如果有人正在使用任何特定的策略来进行崩溃扣除和堆栈跟踪,我洗耳恭听。
你应该充分利用c#语言中的[条件]支持。
将此属性添加到方法中,如下所示:
class Util {
[Conditional ("DEBUG")]
void Log (string msg)
{
Console.WriteLine (msg);
}
}
你可以这样写代码:
Util.Log ("Starting");
DoSomething ();
Util.Log ("Ending");
如果定义了DEBUG符号,上面的代码将编译这三行,但如果没有定义符号,编译器将只生成DoSomething代码。
这允许你在程序中保留调试代码,并通过使用编译器定义来打开/关闭它。
然后将DEBUG作为定义之一添加到DEBUG配置文件中。同样的技术可以应用于其他配置构建,你可以使用上面的模拟器vs设备或调试vs AppStore vs AdHoc