ios - 用户设备数据属性编码失败,但在另一台设备上工作
问题描述
我们的少数用户有一个非常不寻常的错误(已知数以千计的不到 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")
知道为什么基本上软刷新此设置可以解决它(设置为另一个然后再返回)?
解决方案
推荐阅读
- python - 当用户在管理页面上时,Django 自定义管理器返回所有内容
- r - R中混合方差分析中的缺失值
- nativescript - 如何在 nativescript 中从 iOS 上的配置文件配置中检索证书信息?
- java - 复杂的正则表达式和可能的简单方法
- javascript - 我如何有多个类来监听 Javascript 中的点击事件?
- flare - 如何将 Flare 构建的在线帮助挂接到 Web 应用程序中?
- node.js - 如何在 webpack 中包含 readline
- android - 在 kotlin 中使用改造解析 JSON 对象
- docker - 在 Windows 10 中无法使用容器 IP 地址访问应用程序
- r - 在生存 ctree 图中调整终端面板中的 yscale