使用XCode开发iOS应用程序时,您可以使用NSLog调用将信息写入控制台进行调试。在Xamarin.iOS中,可以使用Console.WriteLine完成相同的操作。
在运行应用程序的发布版本时,如果没有附加调试器,这些调用没有任何意义。所以我想用预处理器指令排除它们:
#if DEBUG
Console.WriteLine("foo");
#endif
这样调用在发布版本中甚至不存在。我很欣赏这可能是微优化 - 但我很好奇Xamairn是否已经这样做了,这使得这不必要了吗?
答案 0 :(得分:6)
Console
输出。
仅供参考:Xcode也不会“自动”从Obj-C / Swift“发布”代码中删除NSLog
或print
。 (如果需要,您通常会定义一个全局预处理器宏来全部删除它们。)
您的选择很多......包括:
DEBUG
预处理器。
使用System.Diagnostic.Debug.WriteLine
:
由于应用了[条件(“DEBUG”)]属性,编译器将删除对Debug。*的任何调用。
创建您自己的“Logger”类作为stdout
作家的包装,[Conditional("DEBUG")]
使用Fody
并重新编织程序集以删除/ NOP /重定向WriteLine
等,.....
参考:Xamarin的NSLogWriter助手等级