gpt4 book ai didi

swift - 如何在 Swift 2.0 中静音 "Default will never be executed"

转载 作者:搜寻专家 更新时间:2023-10-31 21:57:57 25 4
gpt4 key购买 nike

我有一个根据 type 变量显示不同横幅的 switch 语句。

switch type {   
case HPBannerType.NetworkUnavailableBanner:
break
case HPBannerType.LocationServiceUnavailableBanner:
break
case HPBannerType.LocationServiceDisabledBanner:
break
default:
break
}

type 变量的类型是 HPBannerType,它是一个枚举:

enum HPBannerType: String{
case NetworkUnavailableBanner = "HPNetworkUnavailableBanner"
case LocationServiceUnavailableBanner = "HPLocationServiceUnavailableBanner"
case LocationServiceDisabledBanner = "HPLocationServiceDisabledBanner"
}

3 种类型中没有完全默认的类型。当我编写 switch 语句时,我必须列出所有情况以便更清楚地理解。这会使结束的“默认”状态成为无用状态并显示警告。

Default will never be executed

我怎样才能消除这个警告?

编辑:

@Eric D. 有绝对正确的解决方案。但是我发布这个的原因是因为

起初,我没有使用简写形式 .XXX,而是使用完整形式 HPBannerType.XXX,当我删除 default 标签时,XCode 给了我 200 个错误!

因此,要纠正此问题,您必须使用速记形式让 XCode 识别其详尽的 switch 语句!否则你会得到错误。您可以尝试以下操作:

switch type {
case HPBannerType.NetworkUnavailableBanner:
break
case HPBannerType.LocationServiceUnavailableBanner:
break
case HPBannerType.LocationServiceDisabledBanner:
break
}

这会引发错误!

最佳答案

切换枚举时不需要包含 default,因为编译器知道切换是详尽无遗的(您已经涵盖了所有情况):

switch type {
case HPBannerType.NetworkUnavailableBanner:
break
case HPBannerType.LocationServiceUnavailableBanner:
break
case HPBannerType.LocationServiceDisabledBanner:
break
}

正如@vadian 评论的那样,您还可以使用更短的语法,因为编译器已经知道 typeHPBannerType 类型的枚举:

switch type {
case .NetworkUnavailableBanner:
break
case .LocationServiceUnavailableBanner:
break
case .LocationServiceDisabledBanner:
break
}

关于swift - 如何在 Swift 2.0 中静音 "Default will never be executed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34111414/

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