Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios os_log:Console.app和`日志流中的整数的意外值`_Ios_Swift_Macos_Logging_Foundation - Fatal编程技术网

Ios os_log:Console.app和`日志流中的整数的意外值`

Ios os_log:Console.app和`日志流中的整数的意外值`,ios,swift,macos,logging,foundation,Ios,Swift,Macos,Logging,Foundation,代码(Swift 3): Xcode 8(调试区域控制台): 2016-10-01 00:38:55.903298 AUHost[82455:1512026]状态已更改:从1更改为2 终端(日志流): 2016-10-01 00:38:54.880763+0200 0x17125a默认0x80000000022D5E 82455 AUHost:状态已更改:从1更改为1718550530 控制台应用程序: 状态已更改:从1更改为1718550530 为什么控制台。应用程序和命令日志流显示意外值17

代码(Swift 3):

Xcode 8(调试区域控制台):

2016-10-01 00:38:55.903298 AUHost[82455:1512026]状态已更改:从1更改为2

终端(日志流):

2016-10-01 00:38:54.880763+0200 0x17125a默认0x80000000022D5E 82455 AUHost:状态已更改:从1更改为1718550530

控制台应用程序

状态已更改:从1更改为1718550530

为什么控制台。应用程序和命令日志流显示意外值1718550530,而不是2

谢谢大家!


更新

使用偶数个参数时观察到的意外行为:

输出:

看起来像只虫子。向苹果报告:

截至今天(2020-07-21),在Swift 5.something和Xcode 11.6中,我在iOS应用程序中使用os_日志时仍然遇到这个问题

这不是一个完整的修复方法,但对我来说有效的解决方法是在调用
os_log()
之前将传入的
Int
转换为
字符串(不要忘记将格式标记更改为
%@
):


1718550530的低位16位为0000 0000 0010(=2),1718550532的低位16位为0000 0000 0100(=4)。True。这是否意味着我们需要在提交到日志流之前“转换/翻转/移位”原始值?您是否有意将所有数字设置为Int32?编辑:这并不能解决问题。这看起来确实像一个bug。还尝试使用不同的格式化程序并转换为C类型(即CInt、CLong)。没有帮助。(不过,它在Objective-C中运行良好。使用Swift的os_log()显然像一个bug。我将提交一个单独的bug,参考您的。
os_log("State changed: from %d to %d", 1, 2)
os_log("View loaded: %d", 1)
os_log("View loaded: %d => %d", 1, 2)
os_log("View loaded: %d => %d => %d", 1, 2, 3)
os_log("View loaded: %d => %d => %d => %d", 1, 2, 3, 4)
os_log("View loaded: %d => %d => %d => %d => %d", 1, 2, 3, 4, 5)
View loaded: 1
View loaded: 1 => 1718550530
View loaded: 1 => 2 => 3
View loaded: 1 => 2 => 3 => 1718550532
View loaded: 1 => 2 => 3 => 4 => 5
let intA = 7
let intB = 4
os_log("State changed: from %@ to %@", String(intA), String(intB))