Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ';编码键';由于';私人';可编码结构的保护级别_Ios_Swift_Struct_Private_Codable - Fatal编程技术网

Ios ';编码键';由于';私人';可编码结构的保护级别

Ios ';编码键';由于';私人';可编码结构的保护级别,ios,swift,struct,private,codable,Ios,Swift,Struct,Private,Codable,我想检查print语句是否打印“Key:messageTimestamp”,这样我就可以定义让disusionmessagetimestampkey=DiscussionMessage.CodingKeys.messageTimestamp.stringValue。但我收到一个错误“CodingKeys”由于“private”保护级别而无法访问。当我试图访问定义结构的文件或其他文件中的CodingKeys时,会出现此错误。我错过了什么?我是否无法访问默认的编码键 struct Discussio

我想检查print语句是否打印“Key:messageTimestamp”,这样我就可以定义
让disusionmessagetimestampkey=DiscussionMessage.CodingKeys.messageTimestamp.stringValue
。但我收到一个错误
“CodingKeys”由于“private”保护级别而无法访问。当我试图访问定义结构的文件或其他文件中的
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, userCountryCode, userCountryEmoji, userName, userEmailAddress
        case messageTimestamp
        case fcmToken, question, recordingUrl, profilePictureUrl
    }
}

现在还不清楚您想做什么,但您还没有将
CodingKeys
enum添加到结构中。@Paulw11我想要一个字符串作为变量名。所以messageTimestamp是变量名,我希望它作为字符串“messageTimestamp”返回,以便我可以在其他地方使用它。我在这里解释一下:然后您需要显式地将
CodingKeys
enum添加到包含结构中所有属性的结构中。是的,我从另一个答案中注意到了这一点。是否有自动生成此枚举的方法?没有。您可以依赖自动属性映射(由于它是
私有的
),也可以显式添加一个。老实说,将静态字符串添加到定义要使用的字段名的结构中会更简单。