如何访问原始值,例如“TmdbImageSize.backdrop(.original).rawValue”?我不知道如何让它发挥作用,或者是否可能。谢谢你的帮助
enum TmdbBackdropSize: String {
case w300, w780, w1280
case original
}
enum TmdbLogoSize: String {
case w45, w92, w154, w185, w300, w500
case original
}
enum TmdbPosterSize: String {
case w92, w154, w185, w342, w500, w780
case original
}
enum TmdbProfileSize: String {
case w45, w185
case h632
case original
}
enum TmdbImageSize {
case backdrop (TmdbBackdropSize)
case logo (TmdbLogoSize)
case poster (TmdbPosterSize)
case profile (TmdbProfileSize)
}
Swift 中具有关联值的枚举没有像符合 RawRepresentable 的枚举那样固有的“rawValue”属性。每个案例的关联值都需要明确处理。
在您的情况下,要访问 TmdbImageSize.backdrop(.original) 的原始值,您需要直接在枚举中处理它:
enum TmdbBackdropSize: String {
case w300, w780, w1280
case original
}
enum TmdbLogoSize: String {
case w45, w92, w154, w185, w300, w500
case original
}
enum TmdbPosterSize: String {
case w92, w154, w185, w342, w500, w780
case original
}
enum TmdbProfileSize: String {
case w45, w185
case h632
case original
}
enum TmdbImageSize {
case backdrop(TmdbBackdropSize)
case logo(TmdbLogoSize)
case poster(TmdbPosterSize)
case profile(TmdbProfileSize)
func rawValue() -> String {
switch self {
case .backdrop(let size):
return size.rawValue
// handle other cases if needed...
}
}
}
// Example usage
let imageSize = TmdbImageSize.backdrop(.original)
let rawValue = imageSize.rawValue()
print(rawValue)
在这里,我向 TmdbImageSize 枚举添加了一个方法 rawValue,用于从关联的枚举情况中提取原始值。现在,您可以调用 imageSize.rawValue() 来获取原始值。