微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对于 Codable Struct,由于“私有”保护级别,“CodingKeys”无法访问

如何解决对于 Codable Struct,由于“私有”保护级别,“CodingKeys”无法访问

我想检查打印语句是否打印“Key: messageTimestamp”,以便我可以定义let disucssionMessageTimestampKey = discussionMessage.CodingKeys.messageTimestamp.stringValue。但我收到错误 'CodingKeys' is inaccessible due to 'private' protection level。当我尝试访问定义结构的文件或其他文件中的 CodingKeys 时,出现此错误。我错过了什么?有没有办法访问认的 CodingKeys

struct discussionMessage: Codable {
    let message,userCountryCode,userCountryEmoji,userName,userEmailAddress: String
    let messageTimestamp: Double
    let fcmToken,question,recordingUrl,profilePictureUrl: String?
}

let disucssionMessageTimestampKey = "messageTimestamp"

print("Key: ",discussionMessage.CodingKeys.messageTimestamp.stringValue)

解决方法

我正在使用以下代码。不是最理想的解决方案,如果我可以访问默认的 CodingKeys

struct DiscussionMessage: Codable {
    let message,userCountryCode,userCountryEmoji,userName,userEmailAddress: String
    let messageTimestamp: Double
    let fcmToken,question,recordingUrl,profilePictureUrl: String?
    
    enum CodingKeys: CodingKey {
        case message,userEmailAddress
        case messageTimestamp
        case fcmToken,profilePictureUrl
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。