gpt4 book ai didi

iOS 11 [NSTimeZone localTimeZone] 忽略 [NSTimeZone defaultTimeZone];

转载 作者:行者123 更新时间:2023-12-01 18:05:24 25 4
gpt4 key购买 nike

当我启动我的应用程序时,我将我的默认时区设置为 GMT[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
然后,在后续调用 [NSTimeZone] , 我用 -localTimeZone .在 iOS 10 之前,一切正常,我得到了 GMT-0 作为返回的时区。现在,在 iOS 11 上,我得到了我的本地时间,即 GMT-3。

另外,如果我调用 -defaultTimeZone相反,我也得到了 GMT-0,这是正确的答案。有人知道为什么-localTimeZone改变了它的行为?

最佳答案

这是iOS11中的一个错误。我提交了一个雷达,它被 Apple 标记为“33629367 的重复”(截至 iOS11.1 测试版仍然是一个 Unresolved 问题)。在大多数情况下,最好停止使用 localTimeZone ......这有点像线程噩梦。

事情应该如何运作:

  • [NSTimeZone systemTimeZone] 总是返回系统时区。如果系统时区发生变化,则必须重新查询此方法(返回的 NSTimeZone 不会自动更新)
  • [NSTimeZone defaultTimeZone] 除非设置了 defaultTimeZone,否则返回 systemTimeZone。如果默认或系统时区发生变化,则必须重新查询此方法(返回的 NSTimeZone 不会自动更新)
  • [NSTimeZone localTimeZone] 返回的时区等于 defaultTimeZone 返回的时区。如果 systemTimeZone 或 defaultTimeZone 更改,则 NSTimeZone 返回 DOES 自动更新。所以它可以在一个函数的中间更新你。

  • 在 iOS11 中,[NSTimeZone localTimeZone] 似乎等同于 [NSTimeZone systemTimeZone]

    关于iOS 11 [NSTimeZone localTimeZone] 忽略 [NSTimeZone defaultTimeZone];,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46499155/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com