|
1
158
您可以扩展
编辑/更新: Xcode 11.2 Swift 5.1或更高版本
创建默认为
操场测试:
|
|
|
2
13
您可以删除原始类型
能够存储 原始值 ,我们将维护另一个枚举,但作为私有:
移动
可解码部分:
可编码部分:
示例:我只是将其包装在一个容器结构中(因为我们将使用JSONECODER/JSONDecoder),如下所示:
对于未知情况以外的值:
对于大小写未知的值:
|
|
|
3
7
|
|
|
4
5
这里有一个基于
nayem
的答案,通过使用内部
如果确定所有现有的枚举大小写名称都与它们所表示的底层字符串值匹配,则可以简化
。。。和
下面是一个使用此方法的实际示例,例如,您想要建模
|
|
|
5
2
您必须实现
|
|
|
6
1
添加此扩展名并设置
|
|
|
7
1
@LeoDabus感谢您的回答。我对它们进行了一些修改,为字符串枚举制定了一个似乎适合我的协议:
|
|
|
8
1
让我们从一个测试用例开始。我们预计这将通过:
我们的协议
然后是解决方案:
诀窍是使用
我赞成使用上面的解决方案
|
|
|
9
0
您可以使用此扩展来编码/解码 (此代码段支持Int-an字符串RawValue类型枚举,但可以轻松扩展以适合其他类型)
而不是使用它
|
|
|
Tom · SwiftUI.sheet导致背景白色闪烁 11 月前 |
|
|
Danil · 种子/填充核心数据的最佳实践?[关闭] 11 月前 |
|
|
Z S · SwiftUI:使用@FocusState。与视图初始化器绑定 11 月前 |
|
|
Robin · LazyVGrid项目预计不会击中测试区域 11 月前 |
|
|
Saurabh Saini · 结构下标 11 月前 |
|
|
Alex Smith · 移动到下一个视图控制器后如何显示警报? 1 年前 |