Fra*_*scu 9 iphone enums switch-statement ios swift
我有一个在Swift enum
中扩展的类型String
.
当我尝试使用时,switch
我收到了一个错误:
交换机中的案例标签应至少具有一个可执行语句
这是我的代码:
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 ""
}
}
}
Run Code Online (Sandbox Code Playgroud)
我很确定这是一个简单的错误,有人看到了吗?
Ant*_*nio 19
swift switch
语句中没有隐含的突破,所以你必须明确地设置:
case .CameraICloudActivated: fallthrough
case .CameraICloudShare: fallthrough
case .CameraMyPhotoStream: fallthrough
case .CameraPhotosCount: fallthrough
case .NetworkConnection: fallthrough
case .PhoneLanguage: fallthrough
case .UserIdentifier:
return value
Run Code Online (Sandbox Code Playgroud)
没有这个,每个案例都有隐含的突破.
请注意,swift要求每个switch case包含至少一个语句 - 如果没有语句,则break
必须使用explicit (在这种情况下意味着"什么都不做")
您可以为案例设置多个值,您只需要用逗号分隔它们即可.
我还建议返回一个nil值而不是一个空字符串,并使函数返回值为String?,但这取决于函数的使用方式.
func update(key:UserInfosKey, value:String, context:UserDefaultsMainKeys) -> String? {
switch key {
case .CameraICloudActivated,
.CameraICloudShare,
.CameraMyPhotoStream,
.CameraPhotosCount,
.NetworkConnection,
.PhoneLanguage,
.UserIdentifier:
return value
default:
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5026 次 |
最近记录: |