我正在使用html的解码功能。但是我收到了这个警告。我该如何摆脱?
func decode(_ entity : String) -> Character? {
if entity.hasPrefix("&#x") || entity.hasPrefix("&#X"){
return decodeNumeric(entity.substring(with: entity.index(entity.startIndex, offsetBy: 3) ..< entity.index(entity.endIndex, offsetBy: -1)), base: 16)
} else if entity.hasPrefix("&#") {
return decodeNumeric(entity.substring(with: entity.index(entity.startIndex, offsetBy: 2) ..< entity.index(entity.endIndex, offsetBy: -1)), base: 10)
} else {
return characterEntities[entity]
}
}
谢谢。
答案 0 :(得分:21)
someString.substring(with: someRange)
只需someString[someRange]
。
所以改变:
entity.substring(with: entity.index(entity.startIndex, offsetBy: 3) ..< entity.index(entity.endIndex, offsetBy: -1))
与
entity[entity.index(entity.startIndex, offsetBy: 3) ..< entity.index(entity.endIndex, offsetBy: -1)]
换句话说,将.substring(with:
更改为[
并将结束)
更改为]
。
结果是Substring
,而不是String
。因此,您可能需要将结果包装在String( )
中以从子字符串结果中获取String
。