Saq*_*qib 3 debugging console ios xamarin
使用XCode开发iOS应用程序时,可以使用NSLog调用将信息写入控制台进行调试.在Xamarin.iOS中,可以使用Console.WriteLine完成相同的操作.
在运行应用程序的发布版本时,如果没有附加调试器,这些调用就没有用处.所以我想用预处理器指令排除它们:
#if DEBUG
Console.WriteLine("foo");
#endif
Run Code Online (Sandbox Code Playgroud)
这样调用甚至不存在于发布版本中.我很欣赏这可能是微优化 - 但我很好奇Xamairn是否已经这样做,这使得这不必要?
Console iOS版本中未删除输出.
仅供参考:Xcode不会"自动"删除NSLog或print从Obj-C/Swift"释放"代码.(如果需要,您通常会定义一个全局预处理器宏来将它们全部删除...)
你的选择很多......包括:
DEBUG 您在问题中显示的预处理器.
用途System.Diagnostic.Debug.WriteLine:
由于应用了[条件("DEBUG")]属性,编译器将删除对Debug.*的任何调用.
创建自己的"记录仪"类作为一个包装的stdout作家和[Conditional("DEBUG")]其
使用Fody并重新编织程序集以删除/ NOP /重定向WriteLine
等等.....
参考:Xamarin的NSLogWriter助手类
| 归档时间: |
|
| 查看次数: |
1963 次 |
| 最近记录: |