私は列挙型を持っています:
enum NewProgramDetails: String {
case Description = "Description", ToMode = "To Mode", From = "From", To = "To", Days = "Days"
static let allValues = [Description, ToMode, From, To, Days]
}
この列挙型を使用してセルに表示するには、indexPathに依存します。
cell.textLabel.text = NewProgramDetails.ToMode
エラー:タイプ 'ViewController.NewProgramDetails'の値をタイプ 'String?'に割り当てることはできません
Enum値を使用して、テキストを文字列としてラベル付けする方法を教えてください。
列挙型のrawValue
を使用します。
cell.textLabel.text = NewProgramDetails.ToMode.rawValue
Swift 3では、これを使用できます
var enumValue = Customer.Physics
var str = String(describing: enumValue)
rawValue
を使用する以外は、
NewProgramDetails.ToMode.rawValue // "To Mode"
String.init
を呼び出して、列挙値の文字列表現を取得することもできます。
String(NewProgramDetails.ToMode)
これは"ToMode"
を返します。これは、割り当てたrawValue
とは少し異なる場合があります。ただし、生の値を割り当てないように怠惰な場合は、このString.init
メソッドを使用できます。