Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:`Type';[字符串]';不符合协议';StringLiteralConvertible'`_Ios_Xcode_Swift - Fatal编程技术网

Ios Swift:`Type';[字符串]';不符合协议';StringLiteralConvertible'`

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

我正在玩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]
    }
    ...
    ...
}
我收到此错误:
类型“[String]”不符合协议“StringLiteralConvertible”

问题:
  • 如何处理此错误?
  • 是否有更干净/更好的方法在运行中关闭装置
  • 看来我还没有完全理解你的意思!和在Swift中输入,是否有易于理解的教程

谢谢大家!

这个问题与您使用期权无关。比那简单

在您的操场上,查看
[[“1”、“2”、“3”、“4”]][0]
返回的值。它不是一个
[[String]]
(字符串数组的数组)。它是一个
[String]
(数组数组中的第一个条目)


但在第二个示例中,您尝试将此值分配给类型为
[[String]]
的变量。只需将
单位的类型更改为
[String]

问题在于我的
变量单位:[[String]]!=零
,使其成为变量单位:[字符串]?=nil使它工作。不过,最后两个问题仍然有效。谢谢,在我发布问题一分钟后,我发现:-)谢谢你的及时回复!