刽子手计划2

时间:2016-11-02 18:30:21

标签: ios swift compiler-errors swift2 element

我之前已就此计划提出了一个问题,但似乎并非所有问题都得到解决。我目前遇到一个错误,指出:“无法将'String'类型的值转换为”guard let indexInWord“行中预期的参数类型'_Element'(又名'Character'):

    guard let letterIndex = letters.indexOf(sender)
        else { return }

    let letter = letterArray[letterIndex]
    guard let indexInWord = word.characters.indexOf(letter)
        else {
            print("no such letter in this word")
            return
        }

    // since we have spaces between dashes, we need to calc index this way
    let indexInDashedString = indexInWord * 2

    var dashString = wordLabel.text
    dashString[indexInDashedString] = letter
    wordLabel.text = dashString

我尝试将字符串'字母'转换为字符但它只会导致更多错误。我想知道如何将String转换为参数类型“_Element”。请帮忙。

1 个答案:

答案 0 :(得分:0)

很难在swift中处理类似于列表的字符串,主要是因为String.characters不是典型的数组。在它上面运行一个for循环,但是如果你正在寻找给定索引的特定字符,那就有点难了。我喜欢做的是将此函数添加到字符串类。

extenstion String {
    func getChars() -> [String] {
        var chars:[String] = []
        for char in characters {
            chars.append(String(char))
        }
        return chars
    }
}

我会在收到输入时使用它来定义一个变量,然后检查它而不是String.characters