热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

什么是iOS11/Xcode9中的TIC读取状态1:57?

如何解决《什么是iOS11/Xcode9中的TIC读取状态1:57?》经验,为你挑选了4个好方法。

更新到Xcode 9后,使用Swift 3和iPhone X模拟器,我的控制台充满了:

TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
...

那是什么,我该如何解决?非常感谢帮助.

PS:我不想Environment Variable在构建方案中用"沉默"它.



1> rgoncalv..:

Apple员工给出了以下答案:

TIC 扩展为"TCP I/O连接",它是CFNetwork中运行TCP连接的子系统

1并且57分别是CFStreamError域和代码; 域1是kCFStreamErrorDomainPOSIX,并且在该域内57是ENOTCONN

简而言之,ENOTCONN的TCP读取失败.

由于TCP I/O连接子系统没有公共API,因此必须通过某些高级包装器(如NSURLSession)使用它.

来源:https://forums.developer.apple.com/thread/66058

编辑/ UPDATE:

由于我们仍然有这些烦人的日志,我从上面的链接询问了相同的Apple专家关于我们的情况,现在特定于Xcode 9和Swift 4.这里是:

很多人都在抱怨这些日志,自从我升级到Xcode 9/iOS 11以来,我在所有应用程序中都有这些日志.

2017-10-24 15:26:49.120556-0300 MyApp[1092:314222] TIC Read Status [55:0x0]: 1:57  
2017-10-24 15:26:49.120668-0300 MyApp[1092:314222] TIC Read Status [55:0x0]: 1:57  
2017-10-24 15:26:49.626199-0300 MyApp[1092:314617] TIC Read Status [56:0x0]: 1:57

他的回答是:

重要的是要意识到这个ENOTCONN并不一定意味着任何出错的地方.在所有版本的HTTP中都应该使用封闭的TCP连接.因此,除非出现与此错误相关的其他症状,否则我建议您忽略它.

来源:https://forums.developer.apple.com/message/272678#272678

解决方案:只需等待Xcode 9的更新版本/更新.


这不是特定于Swift的.我也用Objectiv-C得到它.
你真的超越了这个答案
你的解决方案似乎没有用,因为它仍然存在于XCode10中.
有一些设置会很好,所以我们实际上可以"忽略它"
我们必须找到一种摆脱这种方法的方法,因为日志打印会影响运行时的应用程序性能,现在我们可以希望,对于非#DEBUG构建,这将不会被打印

2> 0rt..:

这是如何TIC Read Status [11:0x0]: 1:57分解:

TIC 扩展为"TCP I/O连接",它是CFNetwork中运行TCP连接的子系统

11 是TIC内的连接ID号

0x0 是指向TIC对象本身的指针

1并且57分别是CFStreamError域和代码; 域1是kCFStreamErrorDomainPOSIX,在该域中,57是ENOTCONN

资料来源:https://forums.developer.apple.com/thread/66058


但为什么它真的发生了?为什么它突然从iOS 11开始?

3> lal..:

注意:就像@David在评论中提到的那样,它是一种隐藏警告的方法,因此使用此启动参数可以避免获得许多重复消息并拥有一个干净的控制台.完成调试后,请将其禁用,因为控制台在启用时不会提供有用的信息.例如libc++abi.dylib: terminating with uncaught exception of type NSException.

对于那些想知道如何使警告静音并且直到有更好的修复可用的人,您可以继续按照变量进行操作并根据需要进行切换.

OS_ACTIVITY_MODE = disable在产品方案中的Arguments下使用环境变量,以避免控制台充满此类警告.

注B:启用它以查看效果.

资料来源:https://medium.com/@adinugroho/disable-os-logging-in-xcode-8-ec6d38502532

在此输入图像描述


这也使NSLog消息无声.不是一个很好的选择
人们需要停止建议禁用所有日志语句.应该删除这样的答案.
我也字面上说,我不想要他的选择^^只是沉默它没有摆脱问题.
工作迅速.能够使用print()

4> Moose..:

我找到的关于此日志消息和其他消息(例如,不一定是error的NSURLSession错误)的最好方法是拥有自己的日志功能。

class Logger {
    static var project: String = "MyProject"

    static func log(_ string: String, label: String = "") {
        DispatchQueue.main.async {
            print("[\(Logger.project)] \(label) : \(string)")
        }
    }

    static func info(_ string: String) {
        Logger.log(string)
    }

    static func warning(_ string: String) {
        Logger.log(string, label: "WARNING")
    }

    static func error(_ string: String) {
        Logger.log(string, label: "ERROR")
    }
}

然后,我只需在控制台窗格右下角的过滤器中键入[MyProject],就是这样。

请注意,通过在主队列上调用print,它可以从线程使用记录器,而不会混淆控制台。

准备好进行改进并根据您的需求进行调整:)


推荐阅读
author-avatar
幸福---wang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有