Swift枚举错误:声明的语句块是未使用的闭包
发布时间:2020-12-14 04:42:07 所属栏目:百科 来源:网络整理
导读:Swift中的枚举看起来非常强大,但是……我一定不知道我是如何实现这一点的.我想为远程媒体播放器定义一些动作.似乎是枚举的一个很好的用例.我在Enum中定义了允许的消息类型,我想用它来获取修改后的参数字典.参数最终将作为JSON发送给播放器.目前,我得到一个Br
Swift中的枚举看起来非常强大,但是……我一定不知道我是如何实现这一点的.我想为远程媒体播放器定义一些动作.似乎是枚举的一个很好的用例.我在Enum中定义了允许的消息类型,我想用它来获取修改后的参数字典.参数最终将作为JSON发送给播放器.目前,我得到一个Braced语句块是一个未使用的闭包错误.这是相关的代码:
public enum PlayerCommand { case Play case Pause case Load(String) func params(cmd_id:NSInteger) -> [String : Any] { var dict = [ CMD_ID : cmd_id,TYPE : "LOAD",AUTOPLAY : false,MEDIA : NSNull() ] switch self { case .Load(let media): { dict.updateValue(media,forKey: MEDIA) } case .Play: { dict.updateValue("PLAY",forKey: TYPE) dict[CURRENT_TIME] = NSNull() } case .Pause: { dict.updateValue("PAUSE",forKey: TYPE) } default: } return dict } } 我确信还有更多功能(swiftian?)方式来表达这一点,但我还没有很好的语法运气.地图? 解决方法
你的开关语法有点偏,就是全部.你不需要{}围绕每个案例的表达式(当你试图创建一个闭包表达式时,Swift正在解释它们,因此错误).
只做案例.Play:dict.updateValue(等等). 另请注意,您必须在default子句中有一个语句 – 但在这种情况下您实际上并不需要默认值,因为您的开关正在耗尽所有可能性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |