Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift enum正在切换不同的案例_Swift - Fatal编程技术网

Swift enum正在切换不同的案例

Swift enum正在切换不同的案例,swift,Swift,当我第一次尝试运行实例时,它会给我high,当我第二次运行同一个实例时,它会给我low,我不知道操场上发生了什么,而且我怀疑问题还在我身上 哪里出错了?是的,您的代码正在更改同一个实例,并且您的代码按顺序作用于您的实例。我看看能不能解释一下: 这里我们可以看到您的代码的每个部分 一, 是的,很低 二, 如果我们是.low(我们曾经是),我们会遇到这种情况: ovenLight.next() ovenLight.next() 所以我们很兴奋 三, 如果我们是.high(我们曾经是),我们会遇到

当我第一次尝试运行实例时,它会给我
high
,当我第二次运行同一个实例时,它会给我
low
,我不知道操场上发生了什么,而且我怀疑问题还在我身上


哪里出错了?

是的,您的代码正在更改同一个实例,并且您的代码按顺序作用于您的实例。我看看能不能解释一下:

这里我们可以看到您的代码的每个部分

一,

是的,很低

二,

如果我们是.low(我们曾经是),我们会遇到这种情况:

ovenLight.next()
ovenLight.next()
所以我们很兴奋

三,

如果我们是.high(我们曾经是),我们会遇到这样的情况:

ovenLight.next()
ovenLight.next()
所以我们走了


这有意义吗?

如果添加一些打印语句,您会发现您的枚举完全按照它应该的方式运行:

case .high:
    self = .off
这将产生:

var ovenLight = TriStateSwitch.low
print("1. ovenLight = \(ovenLight)")

ovenLight.next()
print("2. ovenLight = \(ovenLight)")

ovenLight.next()
print("3. ovenLight = \(ovenLight)")

它从低开始,这就是它的创建方式。第一次调用
next()
,它会移到高位。下次你调用
next()
,它会转到关闭状态。

这对我来说很好,它从
low
high
开始,然后
off
@对于自由职业者-你希望看到什么?@对于自由职业者-你问了9个问题,大多数问题都有答案,你都没有接受。如果其中一个解决了您的问题,请单击复选标记接受答案✅
var ovenLight = TriStateSwitch.low
print("1. ovenLight = \(ovenLight)")

ovenLight.next()
print("2. ovenLight = \(ovenLight)")

ovenLight.next()
print("3. ovenLight = \(ovenLight)")
1. ovenLight = low
2. ovenLight = high
3. ovenLight = off