我有一个在
Swift中扩展String的枚举类型.
当我尝试使用开关时出现错误:
Case label in a switch should have at least one executable statement
这是我的代码:
enum UserInfosKey:String { case CameraMyPhotoStream = "CMPS" case CameraICloudActivated = "CICA" case CameraICloudShare = "CICS" case ProjectTodayExtension = "PTE" case ProjectShareExtension = "PSE" case NetworkConnection = "NC" case PhoneLanguage = "PL" case CameraPhotosCount = "CPC" case UserIdentifier = "UI" case VersionHistory = "VH" case Path = "Path" } class UserInfosController: NSObject { func update(key:UserInfosKey,value:String,context:UserDefaultsMainKeys) -> String { switch key { case .CameraICloudActivated: case .CameraICloudShare: case .CameraMyPhotoStream: case .CameraPhotosCount: case .NetworkConnection: case .PhoneLanguage: case .UserIdentifier: return value default: return "" } } }
我很确定这是一个简单的错误,有人看到了吗?
解决方法
swift switch语句中没有隐含的漏洞,因此您必须明确设置:
case .CameraICloudActivated: fallthrough case .CameraICloudShare: fallthrough case .CameraMyPhotoStream: fallthrough case .CameraPhotosCount: fallthrough case .NetworkConnection: fallthrough case .PhoneLanguage: fallthrough case .UserIdentifier: return value
没有它,每个案例都有隐含的突破.
请注意,swift要求每个switch case包含至少一个语句 – 如果没有语句,则必须使用显式中断(在这种情况下意味着“什么都不做”)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。