Swift 字符串下标错误
我刚转换成Swift 4,现在出现以下错误: 无法使用“CountableRange”(也称为“CountableRange”)类型的索引为“String.UnicodeScalarView”类型的值下标 代码行为:Swift 字符串下标错误,swift,swift4,Swift,Swift4,我刚转换成Swift 4,现在出现以下错误: 无法使用“CountableRange”(也称为“CountableRange”)类型的索引为“String.UnicodeScalarView”类型的值下标 代码行为: extension AppInvite.PromoCode { fileprivate static func truncate(string: String) -> String { let validCharacters = CharacterSet.al
extension AppInvite.PromoCode {
fileprivate static func truncate(string: String) -> String {
let validCharacters = CharacterSet.alphanumerics
let cleaned = string.unicodeScalars.filter {
validCharacters.contains(UnicodeScalar(UInt16($0.value))!)
}
let range = 0 ..< min(10, cleaned.count)
let characters = cleaned[range].map(Character.init)
return String(characters)
}
}
扩展名AppInvite.PromoCode{
fileprivate静态函数截断(string:string)->string{
设validCharacters=CharacterSet.alphanumerics
let cleaned=string.unicodeScalars.filter{
validCharacters.contains(UnicodeScalar(UInt16($0.value))!)
}
让范围=0..<分钟(10,清洁.计数)
让characters=cleaned[range].map(Character.init)
返回字符串(个字符)
}
}
如何更正它?您使用的是
可数范围
,但要访问字符串的字符,必须使用可数范围
:
let range=cleaned.startIndex。。
let range = cleaned.startIndex..<min(cleaned.index(cleaned.startIndex, offsetBy: 10), cleaned.endIndex)