我正在玩Swift和Xcode。这适用于游乐场:
[["1","2"], ["3","4"]][0]
但这在Xcode项目中不起作用:
enum UnitSystem: Int {
case Standard = 0
case Metric = 1
}
class ViewController: UIViewController, UITextFieldDelegate, UIPickerViewDelegate {
@IBOutlet weak var unitSystemControl: UISegmentedControl! //"Standard" and "Metric"
var units: [[String]]! = nil
var currentUnitSystem: UnitSystem! = nil
override func viewDidLoad() {
super.viewDidLoad()
...
currentUnitSystem = UnitSystem(rawValue: unitSystemControl.selectedSegmentIndex)
units = [["ft.", "in."], ["m.", "cm."]][currentUnitSystem.rawValue]
}
...
...
}
我收到此错误:Type '[String]' does not conform to protocol 'StringLiteralConvertible'
谢谢!
答案 0 :(得分:0)
此问题与您对选项的使用无关。它比那简单。
在您的游乐场中,查看[["1","2"], ["3","4"]][0]
返回的值。它不是[[String]]
(字符串数组的数组)。它是[String]
(数组数组中的第一个条目)。
但在第二个示例中,您尝试将此值分配给类型为[[String]]
的变量。只需将units
的类型更改为[String]
。