gpt4 book ai didi

ios - Glossy iOS 不符合协议(protocol)

转载 作者:行者123 更新时间:2023-11-29 01:15:48 25 4
gpt4 key购买 nike

我正在尝试集成Gloss进行 json 解析,但我收到很多无意义的错误。

我使用 pod install 安装了它,并遇到了以下情况:

  • 首先,当我导入它时,我得到了: Cannot import underlying modules glossy ,我不知道怎么回事,但是在 github 存储库中复制粘贴 GlossExample 项目的示例后,它消失了。

  • 第二,如果我使用:struct Repo: Glossy我收到错误 Repo doesn't conform to protocols Decodable and Encodable但代码是从示例中粘贴的,并且存在方法 init?(json: JSON)func toJSON() -> JSON?

  • 然后我尝试使用 struct Repo: Decodable并为解码器提供此功能:

    init?(json: JSON) {
    let repoId: Int = "id" <~~ json

我收到以下错误: 35: Binary operator '<~~' cannot be applied to operands of type 'String' and 'JSON'

  • 最后我说好的,我不会使用重载运算符,而是使用正常的 Decoder类:

    init?(json: JSON) {
    self.repoId = Decoder.decodeURL("id")(json)
    }

我得到: Cannot convert value of type 'JSON' to expected argument type 'JSON' (aka 'Dictionary<String, AnyObject>')

欢迎您的帮助和解答!

最佳答案

  • First when I import it, I got : Cannot import underlying modules glossy, I don't know how, but after copy pasting the example from GlossExample project in github repo it disappeared.

这是 Xcode 中使用一些框架时会发生的问题,但只需清理代码或直接运行它通常可以消除警告。否则,它可能与使用较旧版本的 Xcode 有关。

Second if I use: struct Repo: Glossy I get error that Repo doesn't conform to protocols Decodable and Encodable but the code is pasted from the example and there exist the methods init?(json: JSON) and func toJSON() -> JSON?

这意味着您的 struct 不符合这两种协议(protocol)。来自Glossy declaration :

/**
Convenience protocol for objects that can be
translated from and to JSON
*/
public protocol Glossy: Decodable, Encodable { }

所以Glossy协议(protocol)同时继承了Decodable和Encodable,这意味着你需要为这两个协议(protocol)实现协议(protocol)功能,而不仅仅是toJSON() -> JSON?

Then I tried to use struct Repo: Decodable and having this function for decoder: ...

您需要先在结构中声明常量,然后在 init 中反序列化 JSON 并将值设置为常量:

struct Repo: Decodable {
let repoId: Int

init?(json: JSON) {
guard let repoId: Int = "id" <~~ json { else return nil }

self.repoId = repoId
}
}

关于ios - Glossy iOS 不符合协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35200822/

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