我已经在自己的文件(“ MyEnum.swift”)中得到了这个枚举(Xcode 10 / Swift 5):
enum MyEnum: Int, CaseIterable {
case A = 0
case B = 1
case C = 2
case D = 3
case E = 4
//Each case needs its own number and description!
var description: String {
switch self {
case .A:
return "abc"
case .B:
return "bcd"
case .C:
return "cde"
case .D:
return "def"
case .E:
return "efg"
}
}
}
Run Code Online (Sandbox Code Playgroud)
...,并希望将说明添加到中PickerView。我知道如何为视图设置功能,但现在我只能计算枚举用例并添加描述。
根据文档和不同的问题,添加CaseIterable应该可以进行呼叫
MyEnum.allCases.count
Run Code Online (Sandbox Code Playgroud)
...但是我只能allCases从枚举文件中访问。从外部(因此从我的ViewController类),我只能调用MyEnum.AllCases,这还没有count,老实说,我什至不知道AllCases返回的确切内容(您不能在上面使用普通数组count)。
将此代码(source)添加到枚举文件中至少可以计算出这种情况:
static let count: Int = {
var max: Int = 0
while MyEnum(rawValue: max) != .none { max += 1 }
return max
}()
Run Code Online (Sandbox Code Playgroud)
...但是使用Swift 4.2+是否应该有一种更简单的方法?
我如何获取案件描述列表,以用PickerView填充(例如“ abc”,“ bcd”,...-最好不对其进行硬编码)?
我尝试了1个文件:
enum TestEnum: CaseIterable {
case test1
case test2
}
Run Code Online (Sandbox Code Playgroud)
在另一个类的另一个文件中,我写道:
let count = TestEnum.allCases.count
Run Code Online (Sandbox Code Playgroud)
它有效,但是我注意到当我键入“ allCases”时没有显示
我需要手动编写
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |