我正试图将我的swift 2.2代码迁移到swift 3(beta),在迁移到swift3.0之后,我在下面的代码中得到了以下错误,“string类型的值没有成员索引”
下面需要帮助的是routePathComponent是一个字符串。
迁移后

if routePathComponent.hasPrefix(":") {
   let variableKey = routePathComponent.substring(with: routePathComponent.indices.suffix(from: routePathComponent.characters.index(routePathComponent.startIndex, offsetBy: 1)))
}

迁移前
if routePathComponent.hasPrefix(":") {
                            let variableKey = routePathComponent.substringWithRange(routePathComponent.startIndex.advancedBy(1)..<routePathComponent.endIndex)
                            let variableValue = component.URLDecodedString()
                            if variableKey.characters.count > 0 && variableValue.characters.count > 0 {
                                variables[variableKey] = variableValue
                            }
                        }

最佳答案

如果你想省略冒号的第一个字符,那就是swift 3

if routePathComponent.hasPrefix(":") {
  let variableKey = routePathComponent.substring(from: routePathComponent.index(after :routePathComponent.startIndex))
}

与注释中的另一个示例相同的是
if let endingQuoteRange = clazz.range(of:"\"") {
   clazz.removeSubrange(endingQuoteRange.upperBound..<clazz.endIndex)
   ...
}

10-08 07:43