The*_*tle 5 json encoder decoder ios swift
我相信我在 JSONDecoder 中发现了一个错误。如果尝试解码具有 8 个以上属性的 JSON 对象,我会收到一个无法识别的错误:
错误:执行被中断,原因:EXCBADACCESS(代码=1,地址=0xe8)。进程一直停留在被中断的地方,使用“线程返回-x”返回到表达式求值前的状态。
每当我执行类似于以下的代码时,就会发生此错误:
struct Objects: Codable {
var NAME1: String?
var NAME2: String?
var NAME3: String?
var NAME4: String?
var NAME5: String?
var NAME6: String?
var NAME7: String?
var NAME8: String?
var NAME9: String?
}
let NEWDATA = """
[
{
"NAME1": "hi",
"NAME2": "hi",
"NAME3": "hi",
"NAME4": "hi",
"NAME5": "hi",
"NAME6": "hi",
"NAME7": "hi",
"NAME8": "hi",
"NAME9": "HELLO"
}
]
""".data(using: .utf8)!
let decoder2 = JSONDecoder()
let product2 = try decoder2.decode([Objects].self, from: NEWDATA)
print(product2)
Run Code Online (Sandbox Code Playgroud)
这发生在 Playground 和设备上。也许我做错了什么,但是当 Objects 结构中只有 8 个属性时它可以工作,但当你有 9 个或更多属性时就不行了。
Xcode 版本:12.1
斯威夫特版本:5.3
感谢你的帮助!
注意到@TheSlyTurtle,您还在 Apple 开发者论坛上提出了此JSONDecoder 限制问题。
另一位用户Claude31和我独立向反馈助手提出了反馈。请参阅 FB9080056 和 FB9393489。
苹果公司于2021年7月27日回复如下:
嗨,马克斯,
感谢您的耐心等待以及您的反馈。请验证 Xcode 13 beta 中是否仍然存在此问题。自提交以来已有工具更新,并且在我们的测试中未发现此问题。
请使用最新的测试版进行测试,然后登录 https://feedbackassistant.apple.com或使用反馈助手应用程序,用结果更新反馈报告。
Xcode 13、macOS 12 和 iOS 15 Beta 和候选版本: https://developer.apple.com/download/
如果问题仍然存在,请提供适当的最新日志和屏幕录制: https://developer.apple.com/bug-reporting/profiles-and-logs/
如果解决,请关闭此报告,或者如果您仍然遇到问题,请告诉我们。谢谢。
反馈 ID 9080056,Playground 执行因第九个属性上的结构而中止
不要回复此电子邮件。请登录反馈助手查看此请求。
我和 Claude31 都表示,从 Xcode 13 beta 4 (13A5201i) 开始,这个缺陷不再出现。