我们的少数用户遇到了一个非常不寻常的错误(已知的千位用户中只有不到10位)。我们存储在coreData中的某些对象使用日期类型。出于某种原因,每当JSON尝试将dateString映射到我们的格式化程序时,在特定人员的设备上,某些对象将在初始化期间失败。
static let iso8601DateTime: DateFormatter = {
let formatter = DateFormatter()
formatter.timeZone = TimeZone(secondsFromGMT: 0)[enter image description here][1]
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
return formatter
}()
当我创建断点时,所有JSON时间字符串都采用以下格式:
令我感到困惑的是,为什么某些对象在那时成功映射而其他对象却失败了,尽管它们都以这种格式返回。通过更改,我在Apple支持网站上阅读了有关ISO8601语言和地区的问题。我从美国->英国->(回到美国)更改了他的地区,发现所有问题都已解决,他可以正常使用该应用程序。
我收到的一些建议是说要为dateformatter指定一个语言环境,但是我还不能进行测试。
formatter.locale = Locale(identifier: "en_US_POSIX")
有什么想法为什么基本上可以通过软刷新此设置来解决(设置为另一个然后再次返回)?