程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了带有空字段的 Swift ui 可编码结构大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决带有空字段的 Swift ui 可编码结构?

开发过程中遇到带有空字段的 Swift ui 可编码结构的问题如何解决?下面主要结合日常开发的经验,给出你关于带有空字段的 Swift ui 可编码结构的解决方法建议,希望对你解决带有空字段的 Swift ui 可编码结构有所启发或帮助;

我有以下结构:

struct Responsetoken: IDentifiable,Codable,Hashable {
    var ID: UUID { return UUID() }
    let access_token: String
    enum CodingKeys: String,CodingKey {
        case access_token
    }
}

struct ResponseUserInfo: IDentifiable,Hashable {
    var ID: UUID { return UUID() }
    let login,avatar_url,HTML_url,created_at,updated_at: String
    let public_repos,public_gists,followers,following: Int
    enum CodingKeys: String,CodingKey {
        case login,public_repos,following,updated_at
    }
}

我想避免每次声明空对象时都这样做:

var token: Responsetoken = Responsetoken(access_token: "")

var userInfo: ResponseUserInfo =
ResponseUserInfo(login: "",avatar_url: "",HTML_url: "",created_at: "",updated_at: "",public_repos: 0,public_gists: 0,followers: 0,following: 0)

我想要的结果是这样的

var token: Responsetoken = Responsetoken()
var userInfo: ResponseUserInfo = ResponseUserInfo()

你能帮我一把吗?

解决方法

一个可能的解决方案是一个静态属性,例如创建一个空结构

struct ResponseToken: Identifiable,Codable,Hashable {
    let id = UUID()
    let accessToken: String
    enum CodingKeys: String,CodingKey {
        case accessToken = "access_token"
    }

    static let empty = ResponseToken(accessToken: "")
}

并使用它

let token = ResponseToken.empty

注意事项:

  • 返回 UUID 的计算属性毫无意义,声明一个常量。
  • 如果您无论如何要指定 CodingKeys,也可以使用它们来转换 snake_case 键。

大佬总结

以上是大佬教程为你收集整理的带有空字段的 Swift ui 可编码结构全部内容,希望文章能够帮你解决带有空字段的 Swift ui 可编码结构所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。