zoukankan      html  css  js  c++  java
  • 关于Xcode8.1 / iOS10+ 真机测试系统打印或者宏定义打印不显示问题

    前言:

    最近做项目时遇到了很多莫名其妙的问题,其中就有这个打印(NSLog)。也不多废话了,我们先来回顾一下Xcode8发布以来,我们遇到的一些关于打印的问题,当然也有解决方法:

    1、Xcode8打印问题

    先看下面这个图片,相信使用Xcode升级到Xcode8的都不陌生吧。

    当时的感觉就是莫名其妙,这里打印出来的一大堆日志,然而对于我们开发并没有多大用处,个人感觉是apple测试Xcode时查看的打印信息,发布时忘记删掉的原因(谨代表个人想法,若有错误,望指出)。当然,网上也给出了解决方法:

    很简单

     

    在EditScheme -> Run -> Arguments
    在Environment Variables一栏中添加OS_ACTIVITY_MODE并设值为Disable,注意打勾。然后clean一下。运行项目即可解决。

    2、Xcode8+iOS10  真机测试。

    上面说了,我们为了屏蔽掉那堆没多大用处的log。添加了OS_ACTIVITY_MODE并设值为Disable。这也是前提,现在问题出现了:我使用iOS10真机测试时发现宏定义的NSLog打印在控制台不显示现象。当时首先想到的也是:添加了OS_ACTIVITY_MODE并设值为Disable的问题。如果不想看到那堆没多大用处的log,又想显示打印信息,怎么办?网上有一些给出的方法,也能很好的解决问题,但前提是你使用的宏定义大体是这样的:

    #ifdef DEBUG
    #define NSLog(...) NSLog(@"
    %s方法,
    第%d行,打印内容:
    %@
    打印结束
    ", __PRETTY_FUNCTION__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])
    #else
    #define NSLog(...)
    #endif

    那么你可以这样解决问题,方法如下:

    #ifdef DEBUG
    #define NSLog(format, ...) printf("[%s] %s [第%d行] %s
    ", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]);
    #else
    #define NSLog(format, ...)
    #endif

     

    解释:这是因为在完成OS_ACTIVITY_MODE设置后会发现真机调试时NSLog不输出了。所以需要定义成另一个函数来输出,例如printf()。
    可以看下这篇文章:Xcode8模拟器警告与iOS10真机调试NSLog无效

    3、Xcode8.1 +iOS10以上系统,真机测试和模拟器测试,打印均不显示问题

    <1>真机测试

      如果只是真机测试打印显示无效的话,可以直接按照上面第二个方法去解决,也是能解决问题的,究其原因:还是添加了OS_ACTIVITY_MODE并设值为Disable的问题

    <2>模拟器测试

      如果在改过真机测试打印显示无效的问题后,模拟器测试打印还是无效的话,现在的解决方法就直接了:删除OS_ACTIVITY_MODE并设值为Disable这个设置

    为此也做过很多尝试,感觉最直接的方法还是直接去掉OS_ACTIVITY_MODE并设值为Disable这个设置,是最好的解决方法。Xcode8.1也解决了“打印一堆没多大用处的log”的问题,所以去掉一开始添加OS_ACTIVITY_MODE并设值为Disable 的想法吧。不过这还是只针对Xcode8以上(当然不包括Xcode8)。

     

     这篇文章也很不错:iOS开发-NSLog不打印设置

     

  • 相关阅读:
    C# 检测dll的新版本号方法
    DataGridView 单击赋值
    一致性Hash算法
    .net Parallel并行使用注意事项
    析构函数和Dispose方法的区别
    查看SQLServer的最大连接数
    Hash算法-CityHash算法
    Hash算法
    Sunday算法--C#版
    KMP算法--C#版
  • 原文地址:https://www.cnblogs.com/LQCQ-Silent/p/6053664.html
Copyright © 2011-2022 走看看