Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.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
Ios 更新/更改Swift中枚举的原始值_Ios_Swift_Enums - Fatal编程技术网

Ios 更新/更改Swift中枚举的原始值

Ios 更新/更改Swift中枚举的原始值,ios,swift,enums,Ios,Swift,Enums,以下面的枚举为例 enum Name : String { case Me = "Prakash" case You = "Raman" } 我能做以下事情吗 将一个“case”的原始值更改为其他值 Name.Me = "Prak" 将新案例添加到枚举 Name.Last = "Benjamin" 谢谢 简短回答:不,你不能 枚举类型在编译时计算。 不可能在运行时更改原始值或添加案例 唯一的动态行为是使用关联的值 参考资料:不,您不能。相反,您可以重新定义枚举以包含关联值而不是

以下面的枚举为例

enum Name : String {

  case Me = "Prakash"
  case You = "Raman"

}
我能做以下事情吗

将一个“case”的原始值更改为其他值

Name.Me = "Prak"
将新案例添加到枚举

Name.Last = "Benjamin"

谢谢

简短回答:不,你不能

枚举类型在编译时计算。
不可能在运行时更改原始值或添加案例

唯一的动态行为是使用关联的值


参考资料:

不,您不能。相反,您可以重新定义枚举以包含关联值而不是原始值

enum Name {
    case Me(String)
    case You(String)
    case Last(String)
}

var me = Name.Me("Prakash")
print(me)
me = .You("Raman")
print(me)
me = .Last("Singh")
print(me)

啊,我想这解决了一部分问题。我可以创建更多的“案例”吗?你不能创建新的枚举案例。但是你可以使用最后一个(字符串)案例来携带不同的值。您不能创建一个全新的case,比如case Middle(String)。您必须预定义所有案例,然后将不同的值关联到它。