Ios Swift:`Type';[字符串]';不符合协议';StringLiteralConvertible'`
我正在玩Swift和Xcode。这在操场上起作用:Ios Swift:`Type';[字符串]';不符合协议';StringLiteralConvertible'`,ios,xcode,swift,Ios,Xcode,Swift,我正在玩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 unitS
[["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]
}
...
...
}
我收到此错误:类型“[String]”不符合协议“StringLiteralConvertible”
问题:- 如何处理此错误?
- 是否有更干净/更好的方法在运行中关闭装置
- 看来我还没有完全理解你的意思!和在Swift中输入,是否有易于理解的教程
谢谢大家! 这个问题与您使用期权无关。比那简单 在您的操场上,查看
[[“1”、“2”、“3”、“4”]][0]
返回的值。它不是一个[[String]]
(字符串数组的数组)。它是一个[String]
(数组数组中的第一个条目)
但在第二个示例中,您尝试将此值分配给类型为
[[String]]
的变量。只需将单位的类型更改为[String]
问题在于我的变量单位:[[String]]!=零
,使其成为变量单位:[字符串]?=nil使它工作。不过,最后两个问题仍然有效。谢谢,在我发布问题一分钟后,我发现:-)谢谢你的及时回复!