gpt4 book ai didi

swift - JSONDecoder 无法在 *Mac* 上解码 *值/片段* 类型

转载 作者:行者123 更新时间:2023-11-30 10:28:41 24 4
gpt4 key购买 nike

有谁知道如何配置Mac版本的JSONDecoder,以便它能够解码片段/值类型?

<小时/>

我正在编写需要在 Mac 和 iOS 上运行的 Swift 代码。我正在使用 DecodableJSONDecoder 来尝试解析一些 JSON。我有一个可解码的枚举,如下所示:

enum SomeEnum: Int, Decodable {
case valueA = 0
case valueB = 1
}

为了测试其可解码方面,我进行了单元测试...

func test_problem() {

let jsonData = "0".data(using: .utf8)!

let result = try! JSONDecoder().decode(SomeEnum.self, from: jsonData)

XCTAssertEqual(result, SomeEnum.valueA)
}

当针对 iOS 目标运行时,此操作会成功。然而,当针对“我的​​ Mac”(位于 Mojave 上)运行时,decode 调用会抛出错误,如下所示:

Thread 1: Fatal error: 'try!' expression unexpectedly raised an error: Swift.DecodingError.dataCorrupted(Swift.DecodingError.Context(codingPath: [], debugDescription: "The given data was not valid JSON.", underlyingError: Optional(Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.})))

iOS JSONDecoder 似乎能够解码片段/值类型,但 Mac 版本的 JSONDecoder 却不能。

最佳答案

在 Mojave(以及 iOS 12)及更低版本中则不能。

Mac JSONDecoder 可以解码 Catalina 10.15.1 及更高版本中的片段

关于swift - JSONDecoder 无法在 *Mac* 上解码 *值/片段* 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59627000/

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